Setting xero__net_fees_by_deal as per deal id, not dedicated to guesty

This commit is contained in:
uri 2024-05-30 10:00:39 +02:00
parent bf0010ceeb
commit e360c1c785
2 changed files with 9 additions and 22 deletions

View file

@ -1181,7 +1181,7 @@ models:
- name: fee_deal - name: fee_deal
data_type: text data_type: text
description: | description: |
A fee category per deal, at the moment only considering guesty fees. A fee category per deal.
- name: fees_invoiced_in_gbp - name: fees_invoiced_in_gbp
data_type: numeric data_type: numeric

View file

@ -1,5 +1,4 @@
{% set relevant_document_statuses = "('PAID', 'AUTHORISED')" %} {% set relevant_document_statuses = "('PAID', 'AUTHORISED')" %}
{% set guesty_id_deal = "('17814677813')" %}
with with
xero__invoices as (select * from {{ ref("xero__invoices") }}), xero__invoices as (select * from {{ ref("xero__invoices") }}),
@ -10,42 +9,30 @@ with
cast( cast(
date_trunc('month', i.invoice_issued_date_utc) as date date_trunc('month', i.invoice_issued_date_utc) as date
) as invoice_issued_year_month, ) as invoice_issued_year_month,
case c.id_deal,
when c.id_deal in {{ guesty_id_deal }} then 'guesty_fees' else null
end as fee_deal,
sum(i.total_amount_wo_tax_in_gbp) as fees_invoiced sum(i.total_amount_wo_tax_in_gbp) as fees_invoiced
from xero__invoices i from xero__invoices i
left join xero__contacts c on i.id_contact = c.id_contact left join xero__contacts c on i.id_contact = c.id_contact
where where i.invoice_status in {{ relevant_document_statuses }}
i.invoice_status in {{ relevant_document_statuses }} group by date_trunc('month', i.invoice_issued_date_utc), c.id_deal
and (c.id_deal in {{ guesty_id_deal }})
group by
date_trunc('month', i.invoice_issued_date_utc),
case when c.id_deal in {{ guesty_id_deal }} then 'guesty_fees' else null end
), ),
fees_credited as ( fees_credited as (
select select
cast( cast(
date_trunc('month', cn.credit_note_issued_at_utc) as date date_trunc('month', cn.credit_note_issued_at_utc) as date
) as credit_note_issued_year_month, ) as credit_note_issued_year_month,
case c.id_deal,
when c.id_deal in {{ guesty_id_deal }} then 'guesty_fees' else null
end as fee_deal,
sum(cn.subtotal_in_gbp) as fees_credited sum(cn.subtotal_in_gbp) as fees_credited
from xero__credit_notes cn from xero__credit_notes cn
left join xero__contacts c on cn.id_contact = c.id_contact left join xero__contacts c on cn.id_contact = c.id_contact
where where cn.credit_note_status in {{ relevant_document_statuses }}
cn.credit_note_status in {{ relevant_document_statuses }} group by date_trunc('month', cn.credit_note_issued_at_utc), c.id_deal
and (c.id_deal in {{ guesty_id_deal }})
group by
date_trunc('month', cn.credit_note_issued_at_utc),
case when c.id_deal in {{ guesty_id_deal }} then 'guesty_fees' else null end
) )
select select
coalesce( coalesce(
i.invoice_issued_year_month, c.credit_note_issued_year_month i.invoice_issued_year_month, c.credit_note_issued_year_month
) as issued_year_month, ) as issued_year_month,
coalesce(i.fee_deal, c.fee_deal) as fee_deal, coalesce(i.id_deal, c.id_deal) as id_deal,
coalesce(i.fees_invoiced, 0) as fees_invoiced_in_gbp, coalesce(i.fees_invoiced, 0) as fees_invoiced_in_gbp,
coalesce(c.fees_credited, 0) as fees_credited_in_gbp, coalesce(c.fees_credited, 0) as fees_credited_in_gbp,
(coalesce(i.fees_invoiced, 0) - coalesce(c.fees_credited, 0)) as net_fees_in_gbp (coalesce(i.fees_invoiced, 0) - coalesce(c.fees_credited, 0)) as net_fees_in_gbp
@ -53,4 +40,4 @@ from fees_invoiced i
full outer join full outer join
fees_credited c fees_credited c
on i.invoice_issued_year_month = c.credit_note_issued_year_month on i.invoice_issued_year_month = c.credit_note_issued_year_month
and i.fee_deal = c.fee_deal and i.id_deal = c.id_deal