with int_xero__credit_notes as (select * from {{ ref("int_xero__credit_notes") }}) select cn.id_credit_note, j.id_line_item, j.id_item, j.item_code, j.quantity::numeric, j.unit_amount::numeric, j.line_amount_local_curr::numeric, (j.line_amount_local_curr::numeric * cn.exchange_rate_to_gbp)::numeric( 18, 4 ) as line_amount_in_gbp, case when cn.line_amount_tax_inclusiveness = 'Inclusive' then j.line_amount_local_curr::numeric - j.tax_amount_local_curr::numeric when cn.line_amount_tax_inclusiveness = 'Exclusive' then j.line_amount_local_curr::numeric when cn.line_amount_tax_inclusiveness = 'NoTax' then j.line_amount_local_curr::numeric else null end as line_amount_wo_taxes_local_curr, case when cn.line_amount_tax_inclusiveness = 'Inclusive' then (j.line_amount_local_curr::numeric * cn.exchange_rate_to_gbp)::numeric( 18, 4 ) - (j.tax_amount_local_curr::numeric * cn.exchange_rate_to_gbp)::numeric( 18, 4 ) when cn.line_amount_tax_inclusiveness = 'Exclusive' then (j.line_amount_local_curr::numeric * cn.exchange_rate_to_gbp)::numeric( 18, 4 ) when cn.line_amount_tax_inclusiveness = 'NoTax' then (j.line_amount_local_curr::numeric * cn.exchange_rate_to_gbp)::numeric( 18, 4 ) else null end as line_amount_wo_taxes_in_gbp, j.tax_amount_local_curr::numeric, (j.tax_amount_local_curr::numeric * cn.exchange_rate_to_gbp)::numeric( 18, 4 ) as tax_amount_in_gbp, j.tax_type, cn.credit_note_currency_iso_4217, j.line_description from int_xero__credit_notes cn cross join lateral( select (jsonb_array_elements(cn.line_items) ->> 'LineItemID') as id_line_item, (jsonb_array_elements(cn.line_items) -> 'Item') ->> 'ItemID' as id_item, (jsonb_array_elements(cn.line_items) -> 'Item') ->> 'Code' as item_code, (jsonb_array_elements(cn.line_items) -> 'Item') ->> 'Name' as item_name, (jsonb_array_elements(cn.line_items) ->> 'Quantity') as quantity, (jsonb_array_elements(cn.line_items) ->> 'UnitAmount') as unit_amount, ( jsonb_array_elements(cn.line_items) ->> 'LineAmount' ) as line_amount_local_curr, ( jsonb_array_elements(cn.line_items) ->> 'TaxAmount' ) as tax_amount_local_curr, (jsonb_array_elements(cn.line_items) ->> 'TaxType') as tax_type, (jsonb_array_elements(cn.line_items) ->> 'Description') as line_description ) j