diff --git a/models/intermediate/core/int_core__host_booking_fees.sql b/models/intermediate/core/int_core__host_booking_fees.sql index bb0e8dc..76d8949 100644 --- a/models/intermediate/core/int_core__host_booking_fees.sql +++ b/models/intermediate/core/int_core__host_booking_fees.sql @@ -7,7 +7,10 @@ with int_core__duplicate_bookings as ( select * from {{ ref("int_core__duplicate_bookings") }} ), - int_core__unified_user as (select * from {{ ref("int_core__unified_user") }}) + int_core__unified_user as (select * from {{ ref("int_core__unified_user") }}), + int_daily_currency_exchange_rates as ( + select * from {{ ref("int_daily_currency_exchange_rates") }} + ) select b.id_booking, b.id_user_guest, @@ -17,14 +20,20 @@ select coalesce(db.is_duplicate_booking, false) as is_duplicate_booking, bce.booking_fee_local, uu.account_currency_iso4217, + dcer.rate as rate_to_gbp, bce.booking_fee_charge_at_utc, bce.booking_fee_charge_date_utc from stg_core__booking b left join int_core__booking_charge_events bce on b.id_booking = bce.id_booking left join stg_core__booking_state bs on b.id_booking_state = bs.id_booking_state left join int_core__duplicate_bookings db on b.id_booking = db.id_booking +left join int_core__unified_user uu on lower(b.id_user_host) = lower(uu.id_user) +-- We user 'lower' because the id_user_host can be found in capital letters or not +-- depending on the table and Postgres is case sensitive left join - int_core__unified_user uu on lower(b.id_user_host) = lower(uu.id_user) - -- We user 'lower' because the id_user_host can be found in capital letters or not - -- depending on the table and Postgres is case sensitive - + int_daily_currency_exchange_rates dcer + on ( + dcer.from_currency = uu.account_currency_iso4217 + and dcer.rate_date_utc = bce.booking_fee_charge_date_utc + ) +where dcer.to_currency = 'GBP' diff --git a/models/intermediate/core/schema.yaml b/models/intermediate/core/schema.yaml index a925eb4..42b482a 100644 --- a/models/intermediate/core/schema.yaml +++ b/models/intermediate/core/schema.yaml @@ -1643,6 +1643,10 @@ models: data_type: character varying description: "Currency used by host/pm/platform users." + - name: rate_to_gbp + data_type: numeric + description: "Exchange rate of the used currency to GBP on the charged date" + - name: booking_fee_charge_at_utc data_type: timestamp without time zone description: | diff --git a/models/reporting/core/core__host_booking_fees.sql b/models/reporting/core/core__host_booking_fees.sql index 5961b10..2757af2 100644 --- a/models/reporting/core/core__host_booking_fees.sql +++ b/models/reporting/core/core__host_booking_fees.sql @@ -11,6 +11,7 @@ select is_duplicate_booking as is_duplicate_booking, booking_fee_local as booking_fee_local, account_currency_iso4217 as account_currency_iso4217, + rate_to_gbp as rate_to_gbp, booking_fee_charge_at_utc as booking_fee_charge_at_utc, booking_fee_charge_date_utc as booking_fee_charge_date_utc from int_core__host_booking_fees diff --git a/models/reporting/core/schema.yaml b/models/reporting/core/schema.yaml index f7ec4e4..dd82d98 100644 --- a/models/reporting/core/schema.yaml +++ b/models/reporting/core/schema.yaml @@ -1045,6 +1045,10 @@ models: data_type: character varying description: "Currency used by host/pm/platform users." + - name: rate_to_gbp + data_type: numeric + description: "Exchange rate of the used currency to GBP on the charged date" + - name: booking_fee_charge_at_utc data_type: timestamp without time zone description: |