New model for deals total due amount

This commit is contained in:
Joaquin 2025-06-03 11:53:40 +02:00
parent 2746977671
commit d50442e887
6 changed files with 129 additions and 82 deletions

View file

@ -10,30 +10,6 @@ with
int_xero__contacts as (select * from {{ ref("int_xero__contacts") }}),
stg_seed__accounting_aggregations as (
select * from {{ ref("stg_seed__accounting_aggregations") }}
),
amount_due_deals as (
select c.id_deal, i.total_due_in_gbp
from int_xero__invoices i
left join int_xero__contacts c on c.id_contact = i.id_contact
where i.invoice_status = 'AUTHORISED' and c.id_deal is not null
union all
select c.id_deal, cn.remaining_credit_in_gbp * -1
from int_xero__credit_notes cn
left join int_xero__contacts c on c.id_contact = cn.id_contact
where cn.credit_note_status = 'AUTHORISED' and c.id_deal is not null
),
outstanding_deals as (
select
id_deal,
sum(total_due_in_gbp) as total_outstanding_in_gbp,
case
when sum(total_due_in_gbp) < 0
then 'Outstanding Resolutions'
when sum(total_due_in_gbp) >= 0
then 'Outstanding Invoices'
end as outstanding_type
from amount_due_deals
group by id_deal
)
select
ili.id_line_item as id_line_item,
@ -87,7 +63,6 @@ select
i.total_tax_in_gbp as header_total_tax_in_gbp,
i.total_due_local_curr as header_total_due_local_curr,
i.total_due_in_gbp as header_total_due_in_gbp,
od.outstanding_type as outstanding_type,
c.id_contact as id_contact,
c.id_deal as id_deal,
@ -103,8 +78,6 @@ from int_xero__invoice_line_items ili
left join int_xero__invoices i on i.id_invoice = ili.id_invoice
left join int_xero__contacts c on c.id_contact = i.id_contact
left join stg_seed__accounting_aggregations aa on aa.account_code = ili.account_code
left join
outstanding_deals od on od.id_deal = c.id_deal and i.invoice_status = 'AUTHORISED'
union all
@ -163,7 +136,6 @@ select
cn.total_tax_in_gbp * -1,
cn.remaining_credit_local_curr * -1,
cn.remaining_credit_in_gbp * -1,
od.outstanding_type as outstanding_type,
c.id_contact,
c.id_deal,
@ -178,8 +150,4 @@ select
from int_xero__credit_note_line_items cnli
left join int_xero__credit_notes cn on cn.id_credit_note = cnli.id_credit_note
left join int_xero__contacts c on c.id_contact = cn.id_contact
left join stg_seed__accounting_aggregations aa on aa.account_code = cnli.account_code
left join
outstanding_deals od
on od.id_deal = c.id_deal
and cn.credit_note_status = 'AUTHORISED'
left join stg_seed__accounting_aggregations aa on aa.account_code = cnli.account_code