From 93c2de6f03e65e964ec3c050f638dff0ca9a7d12 Mon Sep 17 00:00:00 2001 From: Pablo Martin Date: Fri, 17 May 2024 17:54:20 +0200 Subject: [PATCH] macro logic, need to clean a bit --- .../xero => macros}/fee_model_macro.sql | 9 +-- .../reporting/xero/xero__booking_fees_net.sql | 57 ++----------------- .../reporting/xero/xero__listing_fees_net.sql | 8 +++ .../xero/xero__verification_fees_net.sql | 8 +++ 4 files changed, 26 insertions(+), 56 deletions(-) rename {models/reporting/xero => macros}/fee_model_macro.sql (90%) create mode 100644 models/reporting/xero/xero__listing_fees_net.sql create mode 100644 models/reporting/xero/xero__verification_fees_net.sql diff --git a/models/reporting/xero/fee_model_macro.sql b/macros/fee_model_macro.sql similarity index 90% rename from models/reporting/xero/fee_model_macro.sql rename to macros/fee_model_macro.sql index 2afff48..0c767eb 100644 --- a/models/reporting/xero/fee_model_macro.sql +++ b/macros/fee_model_macro.sql @@ -1,4 +1,4 @@ -{% macro generate_xero_net_fees_model(fees_to_include) %} +{% macro generate_xero_net_fees_model(item_codes_to_include) %} {% set relevant_document_statuses = "('PAID', 'AUTHORISED')" %} @@ -20,7 +20,7 @@ left join xero__invoices i on i.id_invoice = ili.id_invoice where i.invoice_status in {{ relevant_document_statuses }} - and ili.item_code in {{ relevant_item_codes }} + and ili.item_code in {{ item_codes_to_include }} group by extract(year from i.invoice_issued_date_utc), extract(month from i.invoice_issued_date_utc) @@ -40,7 +40,7 @@ on cn.id_credit_note = cnli.id_credit_note where cn.credit_note_status in {{ relevant_document_statuses }} - and cnli.item_code in {{ relevant_item_codes }} + and cnli.item_code in {{ item_codes_to_include }} group by extract(year from cn.credit_note_issued_date_utc), extract(month from cn.credit_note_issued_date_utc) @@ -56,4 +56,5 @@ booking_fees_credited c on i.invoice_issued_year = c.credit_note_issued_year and i.invoice_issued_month = c.credit_note_issued_month - order by i.invoice_issued_year desc, i.invoice_issued_month desc + +{% endmacro %} diff --git a/models/reporting/xero/xero__booking_fees_net.sql b/models/reporting/xero/xero__booking_fees_net.sql index 6676354..94b1239 100644 --- a/models/reporting/xero/xero__booking_fees_net.sql +++ b/models/reporting/xero/xero__booking_fees_net.sql @@ -1,54 +1,7 @@ +-- depends_on: {{ ref('xero__invoice_line_items') }} +-- depends_on: {{ ref('xero__invoices') }} +-- depends_on: {{ ref('xero__credit_note_line_items') }} +-- depends_on: {{ ref('xero__credit_notes') }} {% set relevant_item_codes = "('EU Booking Fee','ZAR Bookings','Booking fee - non-UK','USD Bookings','CAD Bookings','Booking fee - UK','AUD Bookings')" %} -with - xero__invoice_line_items as (select * from {{ ref("xero__invoice_line_items") }}), - xero__invoices as (select * from {{ ref("xero__invoices") }}), - xero__credit_note_line_items as ( - select * from {{ ref("xero__credit_note_line_items") }} - ), - xero__credit_notes as (select * from {{ ref("xero__credit_notes") }}), - booking_fees_invoiced as ( - select - extract(year from i.invoice_issued_date_utc) as invoice_issued_year, - extract(month from i.invoice_issued_date_utc) as invoice_issued_month, - sum(ili.line_amount_wo_taxes_in_gbp) as fees_invoiced - from xero__invoice_line_items ili - left join xero__invoices i on i.id_invoice = ili.id_invoice - where - i.invoice_status in {{ relevant_document_statuses }} - and ili.item_code in {{ relevant_item_codes }} - group by - extract(year from i.invoice_issued_date_utc), - extract(month from i.invoice_issued_date_utc) - ), - booking_fees_credited as ( - select - extract( - year from cn.credit_note_issued_date_utc - ) as credit_note_issued_year, - extract( - month from cn.credit_note_issued_date_utc - ) as credit_note_issued_month, - sum(cnli.line_amount_wo_taxes_in_gbp) as fees_credited - from reporting.xero__credit_note_line_items cnli - left join - reporting.xero__credit_notes cn on cn.id_credit_note = cnli.id_credit_note - where - cn.credit_note_status in {{ relevant_document_statuses }} - and cnli.item_code in {{ relevant_item_codes }} - group by - extract(year from cn.credit_note_issued_date_utc), - extract(month from cn.credit_note_issued_date_utc) - ) -select - i.invoice_issued_year as issued_year, - i.invoice_issued_month as issued_month, - coalesce(i.fees_invoiced, 0) as fees_invoiced, - coalesce(c.fees_credited, 0) as fees_credited, - (coalesce(i.fees_invoiced, 0) - coalesce(c.fees_credited, 0)) as net_fees -from booking_fees_invoiced i -left join - booking_fees_credited c - on i.invoice_issued_year = c.credit_note_issued_year - and i.invoice_issued_month = c.credit_note_issued_month -order by i.invoice_issued_year desc, i.invoice_issued_month desc +{{ generate_xero_net_fees_model(relevant_item_codes) }} diff --git a/models/reporting/xero/xero__listing_fees_net.sql b/models/reporting/xero/xero__listing_fees_net.sql new file mode 100644 index 0000000..c94f874 --- /dev/null +++ b/models/reporting/xero/xero__listing_fees_net.sql @@ -0,0 +1,8 @@ +-- depends_on: {{ ref('xero__invoice_line_items') }} +-- depends_on: {{ ref('xero__invoices') }} +-- depends_on: {{ ref('xero__credit_note_line_items') }} +-- depends_on: {{ ref('xero__credit_notes') }} +{% set relevant_item_codes = "('USD Listings','Listing fee - non UK','ZAR Listings','CAD Listings','Listing fee - UK','AUD Listings','EU Listings')" %} + + +{{ generate_xero_net_fees_model(relevant_item_codes) }} diff --git a/models/reporting/xero/xero__verification_fees_net.sql b/models/reporting/xero/xero__verification_fees_net.sql new file mode 100644 index 0000000..4627e41 --- /dev/null +++ b/models/reporting/xero/xero__verification_fees_net.sql @@ -0,0 +1,8 @@ +-- depends_on: {{ ref('xero__invoice_line_items') }} +-- depends_on: {{ ref('xero__invoices') }} +-- depends_on: {{ ref('xero__credit_note_line_items') }} +-- depends_on: {{ ref('xero__credit_notes') }} +{% set relevant_item_codes = "('Verification Fee')" %} + + +{{ generate_xero_net_fees_model(relevant_item_codes) }}