mirror of
https://gitlab.com/cief-data/dbt_cloud.git
synced 2026-08-19 04:14:00 +00:00
Merge branch 'main' of gitlab.com:cief-data/dbt_cloud into build-wallet-cash-flow-analysis
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user