Because cost move to INT, delete some code

This commit is contained in:
CIEF ACC1
2023-10-10 05:23:46 +00:00
parent 9206cfa02e
commit 6fa24f0a96
@@ -9,6 +9,7 @@
column='status')
%}
-- IMPORTS
WITH transaction_orders AS (
SELECT * FROM {{ ref('int_exchange__transaction_orders_get_user_ids') }}
@@ -19,11 +20,7 @@ transaction_order_logs AS (
),
transaction_costs AS (
SELECT * FROM {{ ref('stg_exchange__transaction_costs') }}
),
transaction_cost_logs AS (
SELECT * FROM {{ ref('stg_exchange__transaction_cost_logs') }}
SELECT * FROM {{ ref('int_exchange__transaction_cost_with_latest_cost_ids') }}
),
bookings AS (
@@ -34,13 +31,24 @@ booking_logs AS (
SELECT * FROM {{ ref('stg_exchange__booking_logs') }}
),
purchase_orders AS (
SELECT * FROM {{ ref('stg_exchange__transaction_purchase_orders') }}
),
invoices AS (
SELECT * FROM {{ ref('stg_exchange__transaction_invoices') }}
),
-- LOGIC
order_logs_join_bookings AS (
SELECT
transaction_order_logs.*,
bookings.service_type,
ROW_NUMBER() OVER (PARTITION BY transaction_order_id
ORDER BY transaction_order_logs.updated_datetime DESC,
ORDER BY
transaction_order_logs.updated_datetime DESC,
transaction_order_logs.transaction_order_id DESC,
transaction_order_logs.transaction_order_log_id DESC) AS rank_index
@@ -177,22 +185,7 @@ transaction_order_datetime_imputation AS (
END AS new_order_completed_datetime
FROM transaction_order_order_status_datetime
),
transaction_cost_status_datetime AS (
SELECT
transaction_cost_id,
MIN(created_datetime) AS cost_created_datetime,
{%- for status in order_status %}
MAX(CASE WHEN status = '{{status}}' THEN updated_datetime END) AS cost_{{status.lower()}}_datetime {%- if not loop.last %},{% endif -%}
{% endfor %}
FROM transaction_cost_logs
GROUP BY
transaction_cost_id
),
booking_status_datetime AS (
@@ -209,6 +202,7 @@ booking_status_datetime AS (
GROUP BY
booking_id
),
transaction_orders_lists AS (
@@ -284,63 +278,65 @@ transaction_orders_lists AS (
LEFT JOIN transaction_order_datetime_imputation
ON (transaction_orders.transaction_order_id = transaction_order_datetime_imputation.transaction_order_id)
),
transaction_costs_lists AS (
SELECT
transaction_costs.transaction_cost_id,
transaction_costs.transaction_order_id,
transaction_costs.supplier_company_id,
transaction_costs.bank_id,
transaction_costs.base_currency_id,
transaction_costs.quote_currency_id,
transaction_costs.transaction_type,
transaction_costs.payment_method,
transaction_costs.status,
transaction_costs.payment_reference,
transaction_costs.bill_number,
transaction_costs.base_value,
transaction_costs.quote_value,
transaction_costs.base_to_quote_currency_exchange_rate,
transaction_costs.base_tax,
transaction_costs.base_service_charge,
transaction_cost_id,
transaction_order_id,
supplier_company_id,
bank_id,
base_currency_id,
quote_currency_id,
transaction_type,
payment_method,
status,
payment_reference,
bill_number,
base_value,
quote_value,
base_to_quote_currency_exchange_rate,
base_tax,
base_service_charge,
-- use for future if base currency id other from '1'
IFF(transaction_costs.base_currency_id = '1',
transaction_costs.base_value,
IFF(base_currency_id = '1',
base_value,
-9999999999) AS value_rm,
-- use for future if base currency id other from '1'
IFF(transaction_costs.base_currency_id = '1',
transaction_costs.base_tax,
IFF(base_currency_id = '1',
base_tax,
-9999999999) AS tax_rm,
-- use for future if base currency id other from '1'
IFF(transaction_costs.base_currency_id = '1',
transaction_costs.base_service_charge,
IFF(base_currency_id = '1',
base_service_charge,
-9999999999) AS service_charge_rm,
(value_rm + service_charge_rm + tax_rm) AS total_value_rm,
transaction_costs.expired_datetime,
transaction_costs.deleted_datetime,
transaction_costs.created_datetime,
transaction_costs.updated_datetime,
{%- for status in order_status %}
transaction_cost_status_datetime.cost_{{status.lower()}}_datetime,
{% endfor %}
transaction_cost_status_datetime.cost_created_datetime
expired_datetime,
deleted_datetime,
created_datetime,
updated_datetime,
cost_created_datetime,
cost_completed_datetime,
cost_pending_submission_datetime,
cost_approved_datetime,
cost_pending_verification_datetime,
cost_rejected_datetime,
cost_suspended_datetime,
cost_expired_datetime
FROM transaction_costs
LEFT JOIN transaction_cost_status_datetime
ON (transaction_costs.transaction_cost_id = transaction_cost_status_datetime.transaction_cost_id)
),
bookings_lists AS (
SELECT
bookings.*,
@@ -370,6 +366,7 @@ bookings_lists AS (
LEFT JOIN booking_status_datetime
ON (bookings.booking_id = booking_status_datetime.booking_id)
),
bookings_orders_costs_join AS (
@@ -452,9 +449,7 @@ bookings_orders_costs_join AS (
transaction_costs_lists.cost_pending_verification_datetime,
transaction_costs_lists.cost_approved_datetime,
transaction_costs_lists.cost_completed_datetime,
transaction_costs_lists.cost_rejected_datetime,
'{{ modules.datetime.datetime.now(modules.pytz.timezone("Asia/Kuala_Lumpur")) }}' AS _dbt_ran_datetime
transaction_costs_lists.cost_rejected_datetime
FROM transaction_orders_lists
@@ -466,6 +461,112 @@ bookings_orders_costs_join AS (
),
purchase_orders_invoices_join AS (
SELECT
bookings_orders_costs_join.*,
invoices.created_datetime AS invoice_created_datetime,
purchase_orders.created_datetime AS purchase_order_created_datetime,
purchase_orders.updated_datetime AS purchase_order_updated_datetime,
CASE
WHEN order_status NOT IN ('REJECTED', 'SUSPENDED', 'EXPIRED') THEN purchase_orders.purchase_order_number
END AS purchase_order_number,
CASE
WHEN order_status NOT IN ('REJECTED', 'SUSPENDED', 'EXPIRED') THEN purchase_orders.status
END AS purchase_order_status,
CASE
WHEN cost_status IN ('APPROVED') THEN invoices.invoice_number
END AS invoice_number,
CASE
WHEN cost_status IN ('APPROVED') THEN invoices.status
END AS invoice_status
FROM bookings_orders_costs_join
LEFT JOIN purchase_orders
ON (bookings_orders_costs_join.booking_id = purchase_orders.booking_id)
LEFT JOIN invoices
ON (bookings_orders_costs_join.booking_id = invoices.booking_id)
),
purchase_order_invoice_status_redefined AS (
SELECT
*,
COALESCE( 'COST_' ||cost_status, 'ORDER_' || order_status ) AS transaction_temp_status,
-- Transaction status tracks the orders and costs
CASE
WHEN order_status IN ('COMPLETED', 'APPROVED') AND cost_status IS NULL
THEN 'PENDING_GENERATE_WHITE_FORM'
WHEN order_status IN ('COMPLETED', 'APPROVED') AND cost_status IN ('PENDING_VERIFICATION')
THEN 'GENERATED_WHITE_FORM'
WHEN transaction_temp_status IN ('COST_APPROVED', 'COST_COMPLETED')
THEN 'UPLOADED_BANK_SLIP'
WHEN transaction_temp_status IN ('ORDER_APPROVED')
THEN 'VERIFIED_PAYMENT_STATEMENT'
WHEN transaction_temp_status IN ('ORDER_PENDING_VERIFICATION')
THEN 'PENDING_VERIFICATION_PAYMENT_STATEMENT'
WHEN transaction_temp_status IN ('ORDER_PENDING_SUBMISSION')
THEN 'PENDING_SUBMISSION_PAYMENT_STATEMENT'
END AS transaction_temp_status_2,
-- Document status tracks the purchase orders and invoices
CASE
WHEN order_status IN ('REJECTED', 'SUSPENDED', 'EXPIRED')
THEN null
WHEN ( purchase_order_status IS NULL OR purchase_order_status IN ('PENDING_SUBMISSION') ) AND purchase_order_number IS NULL
THEN 'PENDING_SUBMISSION_PURCHASE_ORDER'
WHEN purchase_order_status IN ('PENDING_VERIFICATION')
THEN 'PENDING_VERIFICATION_PURCHASE_ORDER'
WHEN purchase_order_number IS NOT NULL AND purchase_order_status IN ( 'PENDING_VERIFICATION', 'PENDING_SUBMISSION' ) AND purchase_order_number IS NOT NULL
THEN 'PENDING_RESUBMISSION_PURCHASE_ORDER'
WHEN purchase_order_status IN ('APPROVED') AND invoice_number IS NULL AND cost_status IN ('APPROVED', 'COMPLETED')
THEN 'PENDING_GENERATE_INVOICE'
WHEN purchase_order_status IN ('APPROVED') AND invoice_status IS NULL
THEN 'APPROVED_PURCHASE_ORDER'
WHEN invoice_status IN ('APPROVED') AND cost_status IN ('COMPLETED', 'APPROVED')
THEN 'GENERATED_INVOICE'
END AS document_status,
COALESCE(transaction_temp_status_2, transaction_temp_status ) AS transaction_status
FROM purchase_orders_invoices_join
),
renaming_datetime_columns AS (
SELECT
*,
booking_created_datetime AS customer_made_booking_datetime,
order_created_datetime AS customer_placed_order_datetime,
order_pending_verification_datetime AS customer_made_payment_datetime,
order_approved_datetime AS account_verified_payment_datetime,
order_completed_datetime AS first_white_form_generated_datetime,
cost_pending_verification_datetime AS last_white_form_generated_datetime,
COALESCE(cost_approved_datetime, cost_completed_datetime) AS operation_uploaded_bank_slip_datetime,
purchase_order_created_datetime AS first_purchase_order_uploaded_datetime,
purchase_order_updated_datetime AS last_purchase_order_uploaded_datetime,
invoice_created_datetime AS operation_generated_invoice_datetime,
order_rejected_datetime AS account_rejected_payment_datetime,
'{{ modules.datetime.datetime.now(modules.pytz.timezone("Asia/Kuala_Lumpur")) }}' AS _dbt_ran_datetime
FROM purchase_order_invoice_status_redefined
),
-- FINAL
final_fct_exchange__new_orders AS (
@@ -485,6 +586,8 @@ final_fct_exchange__new_orders AS (
base_currency_id,
-- dimensions
transaction_status,
document_status,
service_type,
booking_status,
is_first_time_booking_company,
@@ -505,6 +608,10 @@ final_fct_exchange__new_orders AS (
cost_status,
cost_payment_reference,
cost_bill_number,
purchase_order_status,
purchase_order_number,
invoice_status,
invoice_number,
-- measures
estimate_booking_base_to_quote_currency_exchange_rate,
@@ -520,6 +627,7 @@ final_fct_exchange__new_orders AS (
order_service_charge_rm,
order_tax_rm,
total_order_value_rm,
cost_base_value,
cost_quote_value,
cost_base_to_quote_currency_exchange_rate,
@@ -548,18 +656,31 @@ final_fct_exchange__new_orders AS (
order_suspended_datetime,
order_expired_datetime,
next_order_created_datetime,
cost_created_datetime,
cost_pending_submission_datetime,
cost_pending_verification_datetime,
cost_approved_datetime,
cost_completed_datetime,
cost_rejected_datetime,
cost_rejected_datetime,
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
_dbt_ran_datetime
FROM bookings_orders_costs_join
FROM renaming_datetime_columns
)
SELECT * FROM final_fct_exchange__new_orders