Merge branch 'main' of gitlab.com:cief-data/dbt_cloud into build-wallet-cash-flow-analysis

This commit is contained in:
CIEF ACC1
2024-03-14 02:24:37 +00:00
11 changed files with 190 additions and 130 deletions
@@ -23,32 +23,36 @@ status AS (
-- LOGIC
transactions_generate_transaction_log_id AS (
SELECT
MD5_NUMBER_LOWER64(CONCAT(transaction_id, created_datetime)) AS transaction_log_id,
*
FROM transactions
),
transaction_arch_logs_union_transactions AS (
SELECT * FROM transactions_generate_transaction_log_id
UNION
SELECT * FROM transaction_arch_logs
),
union_transaction_rename_column_and_column_value AS (
SELECT
transaction_arch_logs_union_transactions.transaction_log_id AS transaction_cost_log_id,
transaction_arch_logs_union_transactions.transaction_id AS transaction_cost_id,
transaction_arch_logs_union_transactions.transaction_log_id AS transaction_cost_log_id,
transaction_arch_logs_union_transactions.transaction_id AS transaction_cost_id,
IFF(transaction_arch_logs_union_transactions.owner_type = 'App\\Models\\Transaction',
transaction_arch_logs_union_transactions.owner_id,
null) AS transaction_order_id,
COALESCE(transaction_types.name, transaction_arch_logs_union_transactions.transaction_type::string) AS transaction_type,
COALESCE(transaction_types.name, transaction_arch_logs_union_transactions.transaction_type::string) AS transaction_type,
transaction_arch_logs_union_transactions.issuer_user_id AS supplier_company_id,
transaction_arch_logs_union_transactions.issuer_user_id AS supplier_company_id,
transaction_arch_logs_union_transactions.receiver_user_id AS company_id,
transaction_arch_logs_union_transactions.recipient_bank_id,
@@ -58,23 +62,22 @@ union_transaction_rename_column_and_column_value AS (
transaction_arch_logs_union_transactions.payment_reference,
transaction_arch_logs_union_transactions.bill_number,
transaction_arch_logs_union_transactions.base_currency_id,
transaction_arch_logs_union_transactions.quote_currency_id,
transaction_arch_logs_union_transactions.base_value,
transaction_arch_logs_union_transactions.quote_value,
transaction_arch_logs_union_transactions.base_currency_id,
transaction_arch_logs_union_transactions.quote_currency_id,
transaction_arch_logs_union_transactions.base_to_quote_currency_exchange_rate,
transaction_arch_logs_union_transactions.base_tax,
transaction_arch_logs_union_transactions.base_service_charge,
transaction_arch_logs_union_transactions.expired_datetime,
( transaction_arch_logs_union_transactions.base_value + transaction_arch_logs_union_transactions.base_service_charge ) AS total_base_value,
COALESCE(status.name, transaction_arch_logs_union_transactions.status::string) AS status,
transaction_arch_logs_union_transactions.expired_datetime,
transaction_arch_logs_union_transactions.deleted_datetime,
transaction_arch_logs_union_transactions.created_datetime,
transaction_arch_logs_union_transactions.updated_datetime,
'{{ modules.datetime.datetime.now(modules.pytz.timezone("Asia/Kuala_Lumpur")) }}' AS _dbt_ran_datetime
FROM transaction_arch_logs_union_transactions
@@ -87,12 +90,12 @@ union_transaction_rename_column_and_column_value AS (
LEFT JOIN status
ON (transaction_arch_logs_union_transactions.status = status.id)
WHERE
transaction_arch_logs_union_transactions.owner_type = 'App\\Models\\Transaction'
AND
transaction_arch_logs_union_transactions.transaction_type = '3' --BILL
),
@@ -123,6 +126,7 @@ final__stg_exchange__transaction_log_costs AS (
base_to_quote_currency_exchange_rate,
base_tax,
base_service_charge,
total_base_value,
-- date/times
expired_datetime,
@@ -21,37 +21,32 @@ status AS (
transactions_join_transaction_types_payment_methods_currencies_status AS (
SELECT
transactions.transaction_id AS transaction_cost_id,
IFF(transactions.owner_type = 'App\\Models\\Transaction', transactions.owner_id, null) AS transaction_order_id,
COALESCE(transaction_types.name, transactions.transaction_type::string) AS transaction_type,
transactions.issuer_user_id AS supplier_company_id,
transactions.transaction_id AS transaction_cost_id,
transactions.issuer_user_id AS supplier_company_id,
transactions.recipient_bank_id AS bank_id,
COALESCE(payment_methods.name, transactions.payment_method::string) AS payment_method,
COALESCE(payment_methods.name, transactions.payment_method::string) AS payment_method,
COALESCE(transaction_types.name, transactions.transaction_type::string) AS transaction_type,
IFF(transactions.owner_type = 'App\\Models\\Transaction', transactions.owner_id, null) AS transaction_order_id,
transactions.payment_reference,
transactions.bill_number,
transactions.base_value,
transactions.quote_value,
transactions.base_currency_id,
transactions.quote_currency_id,
transactions.base_to_quote_currency_exchange_rate,
transactions.base_tax,
transactions.base_service_charge,
transactions.expired_datetime,
transactions.base_value,
transactions.quote_value,
( transactions.base_value + transactions.base_service_charge ) AS total_base_value,
COALESCE(status.name, transactions.status::string) AS status,
COALESCE(status.name, transactions.status::string) AS status,
transactions.expired_datetime,
transactions.deleted_datetime,
transactions.created_datetime,
transactions.updated_datetime,
'{{ modules.datetime.datetime.now(modules.pytz.timezone("Asia/Kuala_Lumpur")) }}' AS _dbt_ran_datetime
FROM transactions
@@ -65,7 +60,6 @@ transactions_join_transaction_types_payment_methods_currencies_status AS (
LEFT JOIN status
ON (transactions.status = status.id)
WHERE
transactions.owner_type = 'App\\Models\\Transaction'
AND
@@ -95,10 +89,11 @@ final__stg_exchange__transaction_costs AS (
-- measures
base_value,
quote_value,
base_to_quote_currency_exchange_rate,
quote_value,
base_tax,
base_service_charge,
total_base_value,
-- date/times
expired_datetime,
@@ -110,6 +105,7 @@ final__stg_exchange__transaction_costs AS (
_dbt_ran_datetime
FROM transactions_join_transaction_types_payment_methods_currencies_status
)
SELECT * FROM final__stg_exchange__transaction_costs
@@ -47,11 +47,12 @@ transactions_join_transaction_types_payment_methods_bookings_status AS (
COALESCE(payment_methods.name, transactions.payment_method::string) AS payment_method,
COALESCE(status.name, transactions.status::string) AS status,
transactions.bill_number AS invoice_number,
transactions.base_value,
( transactions.quote_value / transactions.base_to_quote_currency_exchange_rate ) AS base_value,
transactions.quote_value,
transactions.base_to_quote_currency_exchange_rate,
transactions.base_tax,
transactions.base_service_charge,
(( transactions.quote_value / transactions.base_to_quote_currency_exchange_rate ) + transactions.base_service_charge ) AS total_base_value,
transactions.expired_datetime,
transactions.deleted_datetime,
@@ -80,6 +81,7 @@ transactions_join_transaction_types_payment_methods_bookings_status AS (
),
remove_deleted_records AS (
SELECT
*
FROM transactions_join_transaction_types_payment_methods_bookings_status
@@ -88,9 +90,10 @@ remove_deleted_records AS (
),
remove_duplicated_records AS (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY booking_id ORDER BY updated_datetime DESC) AS row_index,
ROW_NUMBER() OVER (PARTITION BY booking_id ORDER BY updated_datetime DESC) AS row_index,
'{{ modules.datetime.datetime.now(modules.pytz.timezone("Asia/Kuala_Lumpur")) }}' AS _dbt_ran_datetime
@@ -98,6 +101,7 @@ remove_duplicated_records AS (
QUALIFY
row_index = 1
),
@@ -128,6 +132,7 @@ final__stg_exchange__invoices AS (
base_to_quote_currency_exchange_rate,
base_tax,
base_service_charge,
total_base_value,
-- date/times
deleted_datetime,
@@ -29,19 +29,17 @@ transactions_generate_transaction_log_id AS (
FROM transactions
),
transaction_arch_logs_union_transactions AS (
SELECT * FROM transactions_generate_transaction_log_id
UNION
SELECT * FROM transaction_arch_logs
),
union_transaction_rename_column_and_column_value AS (
SELECT
transaction_arch_logs_union_transactions.transaction_log_id AS transaction_order_log_id,
transaction_arch_logs_union_transactions.transaction_id AS transaction_order_id,
transaction_arch_logs_union_transactions.transaction_log_id AS transaction_order_log_id,
transaction_arch_logs_union_transactions.transaction_id AS transaction_order_id,
IFF(transaction_arch_logs_union_transactions.owner_type = 'App\\Models\\Booking',
transaction_arch_logs_union_transactions.owner_id,
@@ -49,16 +47,15 @@ union_transaction_rename_column_and_column_value AS (
COALESCE(transaction_types.name, transaction_arch_logs_union_transactions.transaction_type::string) AS transaction_type,
transaction_arch_logs_union_transactions.receiver_user_id AS company_id,
transaction_arch_logs_union_transactions.receiver_user_id AS company_id,
transaction_arch_logs_union_transactions.recipient_bank_id,
COALESCE(payment_methods.name, transaction_arch_logs_union_transactions.payment_method::string) AS payment_method,
COALESCE(payment_methods.name, transaction_arch_logs_union_transactions.payment_method::string) AS payment_method,
transaction_arch_logs_union_transactions.payment_reference,
transaction_arch_logs_union_transactions.bill_number,
transaction_arch_logs_union_transactions.base_value,
( transaction_arch_logs_union_transactions.base_value - transaction_arch_logs_union_transactions.base_service_charge ) AS base_value,
transaction_arch_logs_union_transactions.quote_value,
transaction_arch_logs_union_transactions.base_currency_id,
@@ -68,14 +65,16 @@ union_transaction_rename_column_and_column_value AS (
transaction_arch_logs_union_transactions.base_to_quote_currency_exchange_rate,
transaction_arch_logs_union_transactions.base_tax,
transaction_arch_logs_union_transactions.base_service_charge,
transaction_arch_logs_union_transactions.expired_datetime,
transaction_arch_logs_union_transactions.base_value AS total_base_value,
COALESCE(status.name, transaction_arch_logs_union_transactions.status::string) AS status,
COALESCE(status.name, transaction_arch_logs_union_transactions.status::string) AS status,
transaction_arch_logs_union_transactions.expired_datetime,
transaction_arch_logs_union_transactions.deleted_datetime,
transaction_arch_logs_union_transactions.created_datetime,
transaction_arch_logs_union_transactions.updated_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 transaction_arch_logs_union_transactions
@@ -88,11 +87,11 @@ union_transaction_rename_column_and_column_value AS (
LEFT JOIN status
ON (transaction_arch_logs_union_transactions.status = status.id)
WHERE
transaction_arch_logs_union_transactions.owner_type = 'App\\Models\\Booking'
AND
transaction_arch_logs_union_transactions.transaction_type = '1' --PAYMENT
),
-- FINAL
@@ -121,6 +120,7 @@ final__stg_exchange__transaction_order_logs AS (
base_to_quote_currency_exchange_rate,
base_tax,
base_service_charge,
total_base_value,
-- date/times
expired_datetime,
@@ -1,7 +1,3 @@
-- change name for final__stg_exchange__transaction_costs
-- @todo
-- @yam
-- IMPORTS
WITH transactions AS (
SELECT * FROM {{ ref('base_exchange__transactions') }}
@@ -25,37 +21,32 @@ status AS (
transactions_join_transaction_types_payment_methods_status AS (
SELECT
transactions.transaction_id AS transaction_order_id,
IFF(transactions.owner_type = 'App\\Models\\Booking', transactions.owner_id, null) AS booking_id,
COALESCE(transaction_types.name, transactions.transaction_type::string) AS transaction_type,
transactions.receiver_user_id AS company_id,
transactions.transaction_id AS transaction_order_id,
transactions.receiver_user_id AS company_id,
transactions.recipient_bank_id AS bank_id,
COALESCE(payment_methods.name, transactions.payment_method::string) AS payment_method,
COALESCE(payment_methods.name, transactions.payment_method::string) AS payment_method,
COALESCE(transaction_types.name, transactions.transaction_type::string) AS transaction_type,
IFF(transactions.owner_type = 'App\\Models\\Booking', transactions.owner_id, null) AS booking_id,
transactions.payment_reference,
transactions.bill_number,
transactions.base_value,
transactions.quote_value,
transactions.base_currency_id,
transactions.quote_currency_id,
transactions.base_to_quote_currency_exchange_rate,
transactions.base_tax,
transactions.base_service_charge,
( transactions.base_value - transactions.base_service_charge ) AS base_value, -- Tax not implemented in CIEF yet.
transactions.base_value AS total_base_value,
transactions.quote_value,
COALESCE(status.name, transactions.status::string) AS status,
transactions.expired_datetime,
COALESCE(status.name, transactions.status::string) AS status,
transactions.deleted_datetime,
transactions.created_datetime,
transactions.updated_datetime,
'{{ modules.datetime.datetime.now(modules.pytz.timezone("Asia/Kuala_Lumpur")) }}' AS _dbt_ran_datetime
FROM transactions
@@ -69,17 +60,16 @@ transactions_join_transaction_types_payment_methods_status AS (
LEFT JOIN status
ON (transactions.status = status.id)
WHERE
transactions.owner_type = 'App\\Models\\Booking'
AND
AND
transactions.transaction_type = '1' --PAYMENT
),
-- FINAL
final__stg_exchange__transaction_costs AS (
final__stg_exchange__transaction_orders AS (
SELECT
-- ids
@@ -99,10 +89,11 @@ final__stg_exchange__transaction_costs AS (
-- measures
base_value,
quote_value,
base_to_quote_currency_exchange_rate,
quote_value,
base_tax,
base_service_charge,
total_base_value,
-- date/times
expired_datetime,
@@ -115,6 +106,6 @@ final__stg_exchange__transaction_costs AS (
FROM transactions_join_transaction_types_payment_methods_status
)
)
SELECT * FROM final__stg_exchange__transaction_costs
SELECT * FROM final__stg_exchange__transaction_orders