mirror of
https://gitlab.com/cief-data/dbt_cloud.git
synced 2026-08-19 04:14:00 +00:00
Add Business Term status
This commit is contained in:
@@ -1,3 +1,23 @@
|
|||||||
|
-- VARIABLES
|
||||||
|
{% set var_service_type = [
|
||||||
|
'1688 PAYMENT',
|
||||||
|
'1 DAY TRANSFER',
|
||||||
|
'3 DAYS TRANSFER',
|
||||||
|
'Enterprise to Enterprise 公打公'] %}
|
||||||
|
|
||||||
|
{% set var_working_days_including_base_date = [
|
||||||
|
'add_1_working_day_included_base_date',
|
||||||
|
'add_1_working_day_included_base_date',
|
||||||
|
'add_3_working_day_included_base_date',
|
||||||
|
'add_7_working_day_included_base_date'] %}
|
||||||
|
|
||||||
|
{% set var_working_days_excluding_base_date = [
|
||||||
|
'add_1_working_day_excluded_base_date',
|
||||||
|
'add_1_working_day_excluded_base_date',
|
||||||
|
'add_3_working_day_excluded_base_date',
|
||||||
|
'add_7_working_day_excluded_base_date'] %}
|
||||||
|
|
||||||
|
|
||||||
-- IMPORT
|
-- IMPORT
|
||||||
WITH orders AS (
|
WITH orders AS (
|
||||||
SELECT * FROM {{ ref('fct_exchange__transaction_orders') }}
|
SELECT * FROM {{ ref('fct_exchange__transaction_orders') }}
|
||||||
@@ -25,6 +45,8 @@ fct_and_dim_joins AS (
|
|||||||
orders.booking_id,
|
orders.booking_id,
|
||||||
orders.booking_marking_id,
|
orders.booking_marking_id,
|
||||||
orders.company_id,
|
orders.company_id,
|
||||||
|
orders.transaction_status,
|
||||||
|
orders.document_status,
|
||||||
|
|
||||||
companies.name AS company_name,
|
companies.name AS company_name,
|
||||||
companies.company_marking_id AS company_marking_id,
|
companies.company_marking_id AS company_marking_id,
|
||||||
@@ -40,6 +62,7 @@ fct_and_dim_joins AS (
|
|||||||
companies.has_wallet AS company_has_wallet,
|
companies.has_wallet AS company_has_wallet,
|
||||||
companies.latitude AS company_latitude,
|
companies.latitude AS company_latitude,
|
||||||
companies.longitude AS company_longitude,
|
companies.longitude AS company_longitude,
|
||||||
|
companies.company_created_datetime AS company_created_datetime,
|
||||||
|
|
||||||
orders.user_id,
|
orders.user_id,
|
||||||
orders.bank_id,
|
orders.bank_id,
|
||||||
@@ -91,63 +114,56 @@ fct_and_dim_joins AS (
|
|||||||
|
|
||||||
-- Estimated delivery datetime based on CIEF internal SLA (cutoff time 4pm)
|
-- Estimated delivery datetime based on CIEF internal SLA (cutoff time 4pm)
|
||||||
CASE
|
CASE
|
||||||
WHEN orders.order_created_datetime >= '2023-01-01' AND orders.service_type = '1 DAY TRANSFER' AND DATE_PART(HOUR, orders.order_pending_verification_datetime) < 16
|
{% for (loop_service_type, working_day_with_base_date, working_day_without_base_date) in zip(var_service_type, var_working_days_including_base_date, var_working_days_excluding_base_date) %}
|
||||||
THEN TO_TIMESTAMP(order_created_dates.add_1_working_day_included_base_date || ' 23:59:59 +08:00')
|
|
||||||
WHEN orders.order_created_datetime >= '2023-01-01' AND orders.service_type = '1 DAY TRANSFER' AND DATE_PART(HOUR, orders.order_pending_verification_datetime) >= 16
|
WHEN orders.order_created_datetime >= '2023-01-01' AND orders.service_type = '{{loop_service_type}}' AND DATE_PART(HOUR, orders.order_pending_verification_datetime) < 16
|
||||||
THEN TO_TIMESTAMP(order_created_dates.add_1_working_day_excluded_base_date || ' 23:59:59 +08:00')
|
THEN TO_TIMESTAMP(order_created_dates.{{working_day_with_base_date}} || ' 23:59:59 +08:00')
|
||||||
|
WHEN orders.order_created_datetime >= '2023-01-01' AND orders.service_type = '{{loop_service_type}}' AND DATE_PART(HOUR, orders.order_pending_verification_datetime) >= 16
|
||||||
|
THEN TO_TIMESTAMP(order_created_dates.{{working_day_without_base_date}} || ' 23:59:59 +08:00')
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
WHEN orders.order_created_datetime >= '2023-01-01' AND orders.service_type = '3 DAYS TRANSFER' AND DATE_PART(HOUR, orders.order_pending_verification_datetime) < 16
|
ELSE NULL
|
||||||
THEN TO_TIMESTAMP(order_created_dates.add_3_working_day_included_base_date || ' 23:59:59 +08:00')
|
|
||||||
WHEN orders.order_created_datetime >= '2023-01-01' AND orders.service_type = '3 DAYS TRANSFER' AND DATE_PART(HOUR, orders.order_pending_verification_datetime) >= 16
|
|
||||||
THEN TO_TIMESTAMP(order_created_dates.add_3_working_day_excluded_base_date || ' 23:59:59 +08:00')
|
|
||||||
|
|
||||||
WHEN orders.order_created_datetime >= '2023-01-01' AND orders.service_type = '1688 PAYMENT' AND DATE_PART(HOUR, orders.order_pending_verification_datetime) < 16
|
|
||||||
THEN TO_TIMESTAMP(order_created_dates.add_1_working_day_included_base_date || ' 23:59:59 +08:00')
|
|
||||||
WHEN orders.order_created_datetime >= '2023-01-01' AND orders.service_type = '1688 PAYMENT' AND DATE_PART(HOUR, orders.order_pending_verification_datetime) >= 16
|
|
||||||
THEN TO_TIMESTAMP(order_created_dates.add_1_working_day_excluded_base_date || ' 23:59:59 +08:00')
|
|
||||||
|
|
||||||
ELSE null
|
|
||||||
END AS estimated_order_delivery_datetime_website_sla,
|
END AS estimated_order_delivery_datetime_website_sla,
|
||||||
|
|
||||||
--- Estimated delivery datetime based on customer expectation
|
--- Estimated delivery datetime based on customer expectation
|
||||||
CASE
|
CASE
|
||||||
WHEN orders.order_created_datetime >= '2023-01-01' AND orders.service_type = '1 DAY TRANSFER' AND DATE_PART(HOUR, orders.order_pending_verification_datetime) < 16
|
{% for (loop_service_type, working_day_with_base_date, working_day_without_base_date) in zip(var_service_type, var_working_days_including_base_date, var_working_days_excluding_base_date) %}
|
||||||
THEN TO_TIMESTAMP(order_created_dates.add_1_working_day_included_base_date || ' ' || (orders.order_pending_verification_datetime::TIME)::STRING )
|
|
||||||
WHEN orders.order_created_datetime >= '2023-01-01' AND orders.service_type = '1 DAY TRANSFER' AND DATE_PART(HOUR, orders.order_pending_verification_datetime) >= 16
|
WHEN orders.order_created_datetime >= '2023-01-01' AND orders.service_type = '{{loop_service_type}}' AND DATE_PART(HOUR, orders.order_pending_verification_datetime) < 16
|
||||||
THEN TO_TIMESTAMP(order_created_dates.add_1_working_day_excluded_base_date || ' ' || (orders.order_pending_verification_datetime::TIME)::STRING )
|
THEN TO_TIMESTAMP(order_created_dates.{{working_day_with_base_date}} || ' ' || (orders.order_pending_verification_datetime::TIME)::STRING )
|
||||||
|
WHEN orders.order_created_datetime >= '2023-01-01' AND orders.service_type = '{{loop_service_type}}' AND DATE_PART(HOUR, orders.order_pending_verification_datetime) >= 16
|
||||||
|
THEN TO_TIMESTAMP(order_created_dates.{{working_day_without_base_date}} || ' ' || (orders.order_pending_verification_datetime::TIME)::STRING )
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
WHEN orders.order_created_datetime >= '2023-01-01' AND orders.service_type = '3 DAYS TRANSFER' AND DATE_PART(HOUR, orders.order_pending_verification_datetime) < 16
|
ELSE NULL
|
||||||
THEN TO_TIMESTAMP(order_created_dates.add_3_working_day_included_base_date || ' ' || (orders.order_pending_verification_datetime::TIME)::STRING )
|
|
||||||
WHEN orders.order_created_datetime >= '2023-01-01' AND orders.service_type = '3 DAYS TRANSFER' AND DATE_PART(HOUR, orders.order_pending_verification_datetime) >= 16
|
|
||||||
THEN TO_TIMESTAMP(order_created_dates.add_3_working_day_excluded_base_date || ' ' || (orders.order_pending_verification_datetime::TIME)::STRING )
|
|
||||||
|
|
||||||
WHEN orders.order_created_datetime >= '2023-01-01' AND orders.service_type = '1688 PAYMENT' AND DATE_PART(HOUR, orders.order_pending_verification_datetime) < 16
|
|
||||||
THEN TO_TIMESTAMP(order_created_dates.add_1_working_day_included_base_date || ' ' || (orders.order_pending_verification_datetime::TIME)::STRING )
|
|
||||||
WHEN orders.order_created_datetime >= '2023-01-01' AND orders.service_type = '1688 PAYMENT' AND DATE_PART(HOUR, orders.order_pending_verification_datetime) >= 16
|
|
||||||
THEN TO_TIMESTAMP(order_created_dates.add_1_working_day_excluded_base_date || ' ' || (orders.order_pending_verification_datetime::TIME)::STRING )
|
|
||||||
|
|
||||||
ELSE null
|
|
||||||
END AS estimated_order_delivery_datetime_customer_expectation,
|
END AS estimated_order_delivery_datetime_customer_expectation,
|
||||||
|
|
||||||
-- On time delivery boolean (CIEF internal SLA)
|
-- On time delivery boolean (CIEF internal SLA)
|
||||||
CASE
|
CASE
|
||||||
WHEN order_completed_datetime IS NULL THEN NULL
|
-- On-time boolean is null when order is not complete
|
||||||
WHEN estimated_order_delivery_datetime_website_sla > order_completed_datetime THEN 1
|
WHEN account_verified_payment_datetime IS NULL THEN NULL
|
||||||
|
WHEN estimated_order_delivery_datetime_website_sla > orders.operation_uploaded_bank_slip_datetime THEN 1
|
||||||
ELSE 0
|
ELSE 0
|
||||||
|
|
||||||
END AS is_on_time_delivery_website_sla,
|
END AS is_on_time_delivery_website_sla,
|
||||||
|
|
||||||
-- On time delivery boolean (Customer Expectation)
|
-- On time delivery boolean (Customer Expectation)
|
||||||
CASE
|
CASE
|
||||||
WHEN order_completed_datetime IS NULL THEN NULL
|
-- On-time boolean is null when order is not complete
|
||||||
WHEN estimated_order_delivery_datetime_customer_expectation > order_completed_datetime THEN 1
|
WHEN account_verified_payment_datetime IS NULL THEN NULL
|
||||||
|
WHEN estimated_order_delivery_datetime_customer_expectation > orders.operation_uploaded_bank_slip_datetime THEN 1
|
||||||
ELSE 0
|
ELSE 0
|
||||||
|
|
||||||
END AS is_on_time_delivery_customer_expectation,
|
END AS is_on_time_delivery_customer_expectation,
|
||||||
|
|
||||||
orders.order_approved_datetime,
|
orders.order_approved_datetime,
|
||||||
orders.order_completed_datetime,
|
orders.order_completed_datetime,
|
||||||
orders.order_rejected_datetime,
|
orders.order_rejected_datetime,
|
||||||
orders.order_suspended_datetime,
|
orders.order_suspended_datetime,
|
||||||
orders.next_order_created_datetime,
|
|
||||||
orders.order_expected_expired_datetime,
|
orders.order_expected_expired_datetime,
|
||||||
orders.order_expired_datetime,
|
orders.order_expired_datetime,
|
||||||
|
|
||||||
@@ -169,6 +185,8 @@ fct_and_dim_joins AS (
|
|||||||
orders.cost_tax_rm,
|
orders.cost_tax_rm,
|
||||||
orders.cost_service_charge_rm,
|
orders.cost_service_charge_rm,
|
||||||
orders.total_cost_value_rm,
|
orders.total_cost_value_rm,
|
||||||
|
orders.purchase_order_number,
|
||||||
|
orders.invoice_number,
|
||||||
orders.cost_created_datetime,
|
orders.cost_created_datetime,
|
||||||
orders.cost_pending_submission_datetime,
|
orders.cost_pending_submission_datetime,
|
||||||
orders.cost_pending_verification_datetime,
|
orders.cost_pending_verification_datetime,
|
||||||
@@ -176,6 +194,19 @@ fct_and_dim_joins AS (
|
|||||||
orders.cost_completed_datetime,
|
orders.cost_completed_datetime,
|
||||||
orders.cost_rejected_datetime,
|
orders.cost_rejected_datetime,
|
||||||
|
|
||||||
|
orders.customer_made_booking_datetime,
|
||||||
|
orders.customer_placed_order_datetime,
|
||||||
|
orders.customer_made_payment_datetime,
|
||||||
|
orders.account_verified_payment_datetime,
|
||||||
|
orders.first_white_form_generated_datetime,
|
||||||
|
orders.last_white_form_generated_datetime,
|
||||||
|
orders.operation_uploaded_bank_slip_datetime,
|
||||||
|
orders.first_purchase_order_uploaded_datetime,
|
||||||
|
orders.last_purchase_order_uploaded_datetime,
|
||||||
|
orders.operation_generated_invoice_datetime,
|
||||||
|
orders.account_rejected_payment_datetime,
|
||||||
|
orders.next_order_created_datetime,
|
||||||
|
|
||||||
'{{ modules.datetime.datetime.now(modules.pytz.timezone("Asia/Kuala_Lumpur")) }}' AS _dbt_ran_datetime
|
'{{ modules.datetime.datetime.now(modules.pytz.timezone("Asia/Kuala_Lumpur")) }}' AS _dbt_ran_datetime
|
||||||
|
|
||||||
FROM orders
|
FROM orders
|
||||||
@@ -218,6 +249,8 @@ final__rep_exchange__daily_orders AS (
|
|||||||
-- dimensions
|
-- dimensions
|
||||||
company_name,
|
company_name,
|
||||||
supplier_company_name,
|
supplier_company_name,
|
||||||
|
transaction_status,
|
||||||
|
document_status,
|
||||||
fix_currency_name,
|
fix_currency_name,
|
||||||
quote_currency_name,
|
quote_currency_name,
|
||||||
base_currency_name,
|
base_currency_name,
|
||||||
@@ -253,6 +286,8 @@ final__rep_exchange__daily_orders AS (
|
|||||||
is_first_time_booking_user_completed,
|
is_first_time_booking_user_completed,
|
||||||
is_on_time_delivery_website_sla,
|
is_on_time_delivery_website_sla,
|
||||||
is_on_time_delivery_customer_expectation,
|
is_on_time_delivery_customer_expectation,
|
||||||
|
purchase_order_number,
|
||||||
|
invoice_number,
|
||||||
|
|
||||||
-- measures
|
-- measures
|
||||||
order_base_to_quote_currency_exchange_rate,
|
order_base_to_quote_currency_exchange_rate,
|
||||||
@@ -279,6 +314,7 @@ final__rep_exchange__daily_orders AS (
|
|||||||
estimate_booking_value_rm,
|
estimate_booking_value_rm,
|
||||||
|
|
||||||
-- date/times
|
-- date/times
|
||||||
|
company_created_datetime,
|
||||||
order_created_datetime,
|
order_created_datetime,
|
||||||
order_created_week,
|
order_created_week,
|
||||||
order_expected_expired_datetime,
|
order_expected_expired_datetime,
|
||||||
@@ -289,7 +325,6 @@ final__rep_exchange__daily_orders AS (
|
|||||||
order_rejected_datetime,
|
order_rejected_datetime,
|
||||||
order_suspended_datetime,
|
order_suspended_datetime,
|
||||||
order_expired_datetime,
|
order_expired_datetime,
|
||||||
next_order_created_datetime,
|
|
||||||
cost_created_datetime,
|
cost_created_datetime,
|
||||||
cost_pending_submission_datetime,
|
cost_pending_submission_datetime,
|
||||||
cost_pending_verification_datetime,
|
cost_pending_verification_datetime,
|
||||||
@@ -302,6 +337,19 @@ final__rep_exchange__daily_orders AS (
|
|||||||
booking_suspended_datetime,
|
booking_suspended_datetime,
|
||||||
estimated_order_delivery_datetime_website_sla,
|
estimated_order_delivery_datetime_website_sla,
|
||||||
estimated_order_delivery_datetime_customer_expectation,
|
estimated_order_delivery_datetime_customer_expectation,
|
||||||
|
|
||||||
|
customer_made_booking_datetime,
|
||||||
|
customer_placed_order_datetime,
|
||||||
|
customer_made_payment_datetime,
|
||||||
|
account_verified_payment_datetime,
|
||||||
|
first_white_form_generated_datetime,
|
||||||
|
last_white_form_generated_datetime,
|
||||||
|
operation_uploaded_bank_slip_datetime,
|
||||||
|
first_purchase_order_uploaded_datetime,
|
||||||
|
last_purchase_order_uploaded_datetime,
|
||||||
|
operation_generated_invoice_datetime,
|
||||||
|
account_rejected_payment_datetime,
|
||||||
|
next_order_created_datetime,
|
||||||
|
|
||||||
-- metadata
|
-- metadata
|
||||||
_dbt_ran_datetime
|
_dbt_ran_datetime
|
||||||
@@ -310,4 +358,4 @@ final__rep_exchange__daily_orders AS (
|
|||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
SELECT * FROM final__rep_exchange__daily_orders
|
SELECT * FROM final__rep_exchange__daily_orders
|
||||||
Reference in New Issue
Block a user