Nedan kan du se den datamodell som vi använder för att visa historisk och aktuell avtalsfakturering.
Först hämtar vi alla avtalsfakturor med start- och slutdatum. Ni behöver kanske laborera med Quantity utifrån era artiklar; om ni fakturerar flera månader på en gång och om antalet är fler än 1.
Givetvis behöver ni välja era artikelnummer osv.
I nästa steg skapar vi en serie av månader utifrån fakturerade perioden.
Lycka till! Hör av dig om ni kör fast! ![:nerd_face: :nerd_face:](https://community.enhanza.com/images/emoji/twitter/nerd_face.png?v=12)
Ps. Testkör i Google Bigquery innan ni använder den i Data Studio.
with i as (
select
i.InvoicePeriodStart,
i.InvoicePeriodEnd,
r.ArticleNumber,
--if(r.DeliveredQuantity < 0, -1, 1) * r.DeliveredQuantity / r.DeliveredQuantity as Quantity,
r.DeliveredQuantity as Quantity,
if(r.DeliveredQuantity < 0, -1, 1) * r.price
-- Convert from foreign currency to SEK
* i.CurrencyRate *
-- Apply any % discount rows
IF (
DiscountType = "PERCENT",
1 - r.Discount / 100,
1
)
-- Apply any amount discount rows
- IF (
DiscountType = "AMOUNT",
r.Discount,
0
) Value,
IF (
DiscountType = "AMOUNT",
r.Discount,
0
) Discount,
i.ContractReference,
i.CustomerName,
i.DocumentNumber
from
`enhanza-elt.fortnox_api.invoices` i
cross join UNNEST(InvoiceRows) r
where
Cancelled is false
and ArticleNumber in("111","1001","1002")
)
select
a as Month,
ArticleNumber,
safe_divide(sum(i.Quantity),sum(i.Quantity)) as Quantity,
sum(i.Value) as Value,
min(Discount) as Discount,
CustomerName
from
i
cross join UNNEST(
GENERATE_DATE_ARRAY(
InvoicePeriodStart,
InvoicePeriodEnd,
INTERVAL 1 MONTH
)
) a
group by
Month,
CustomerName,
ArticleNumber
order by
Month desc,
CustomerName