Hoppa till huvudinnehåll

production.invoices

Följande dokumentation beskriver tabellen production.invoices, en nyckelkomponent i Veterinary Practice Data Platform. Tabellen tillhandahåller…

Följande dokumentation beskriver

production.invoices-tabellen, en nyckelkomponent i Veterinary Practice Data Platform. Tabellen ger direkt åtkomst till standardiserad, testad och berikad fakturadata, så att du kan påskynda analys och ekonomisk rapportering.

Detaljerad kolumnreferens

Kärnidentifierare

Kolumn

Typ

Beskrivning

Exempel

Affärslogik

provet_id

STRING

Din unika identifierare för verksamheten

"pcus_1"

Nyckel för tenant-isolering – filtrera alltid på detta för prestanda

invoice_id

BIGINT

Unik fakturaidentifierare inom verksamheten

12345, 67890

Systemgenererad och oföränderlig när den väl skapats

invoice_number

STRING

Fakturans nummer som visas för kunder

"1001-2024-00123", "DEPT2-240915-456"

Format: {department_id}-{date}-{sequence}. NULL tills fakturan är fastställd (status=3)

Fakturaklassificering

Kolumn

Typ

Beskrivning

Exempel

Affärslogik

invoice_type

STRING

Härledd fakturatyp/kategori

"consultation", "countersale", "credit_note"

Logik:CASE WHEN countersale=1 THEN 'Countersale' WHEN credit_note=0 THEN 'Consultation' WHEN credit_note=1 THEN 'Credit Note' ELSE 'Unknown' END

consultation_id

BIGINT

Referens till relaterad konsultation

98765, NULL

Länkar till konsultationspost. NULL för kassaförsäljning och kreditfakturor

invoice_status

STRING

Aktuellt statusläge för fakturan

"pending", "paid", "cancelled"

Mapping: 0=Utkast, 1=Skickat, 2=Öppen, 3=Fastställd, 4=Fakturering, 99=Ogiltig. Obs: "pending"/"paid"/"cancelled" är förenklade affärstermer

Finansiell information

Kolumn

Typ

Beskrivning

Exempel

Affärslogik

total_incl_vat

DECIMAL

Totalt belopp inklusive moms/skatt

125.50, 89.99

Slutligt fakturerbart belopp inklusive alla skatter

total_excl_vat

DECIMAL

Totalt belopp exklusive moms/skatt

100.40, 74.99

Underlag innan beräkning av skatt

amount_due

DECIMAL

Kvarstående balans

125.50, 0.00, 25.00

Minskar när betalningar läggs på. 0.00 = fullt betald

currency_code

STRING

ISO 4217-kod för valuta

"EUR", "USD", "GBP", "CAD"

Automatiskt mappad från avdelningens land

currency_name

STRING

Fullständigt namn på valutan

"Euro", "US Dollar", "British Pound Sterling"

Valutabeskrivning läsbar för människor

Kund- och veterinärinformation

Kolumn

Typ

Beskrivning

Exempel

Affärslogik

client_name

STRING

Kund/betalande parts namn

"John Smith", "Pet Insurance Co", "Sarah Johnson"

Från payer_name-fältet i källdata

supervising_veterinarian_name

STRING

Fullständigt namn på övervakande veterinär

"Dr. Emily Watson", "Michael Chen DVM", NULL

Logik: `first_name

Detaljer för betalningsmetod

Kolumn

Typ

Beskrivning

Exempel

Affärslogik

payment_method_type

STRING

Standardiserad betalningskategori

"Card", "Cash or Check", "Digital Wallet", "Financing"

Automatisk kategorisering: Card-flagga → "Card", Cash/Check-nyckelord → "Cash or Check", CareCredit/Scratchpay → "Financing", osv.

payment_method_name

STRING

Ursprungligt namn på betalningsmetod

"Visa Credit Card", "Cash", "CareCredit"

Rått namn från verksamhetssystemet

payment_method_name_standardized

STRING

Standardiserat namn på betalningsmetod

"Visa", "Cash", "CareCredit"

Standardiseringslogik: mönstermatchning (t.ex. '%visa%' → 'Visa', '%mastercard%' → 'Mastercard')

Avdelnings- och platsinformation

Kolumn

Typ

Beskrivning

Exempel

Affärslogik

department_id

BIGINT

Avdelnings-/klinikidentifierare

1001, 2005

Länkar till specifik klinikplats

department_name

STRING

Avdelnings-/kliniknamn

"Main Street Veterinary", "Emergency Clinic Downtown"

Verksamhetsnamn för platsen

department_timezone

STRING

IANA-tidszonsidentifierare

"America/New_York", "Europe/London", "Australia/Sydney"

Används för konverteringar till lokal tid

Datumfält (affärsdatum)

Kolumn

Typ

Beskrivning

Exempel

Affärslogik

created_date

DATE

Datum för skapande av faktura

2024-09-15, 2024-08-22

Datumdel av skapande-tidsstämpel

invoice_date

DATE

Officiellt fakturadatum

2024-09-15, 2024-08-22

Affärsdatum som visas på fakturan

invoice_due_date

DATE

Förfallodatum för betalning

2024-10-15, 2024-09-22

När betalning förväntas

invoice_paid_date

DATE

Datum när betalning togs emot

2024-09-20, NULL

NULL för obetalda fakturor

UTC-tidsstämplar (systemtider)

Kolumn

Typ

Beskrivning

Exempel

Affärslogik

created_ts_utc

TIMESTAMP

Tidsstämpel för skapande (UTC)

2024-09-15 14:30:25.123

Systemets skapandetid i UTC

invoice_date_ts_utc

TIMESTAMP

Tidsstämpel för faktura (UTC)

2024-09-15 12:00:00.000

Fakturadatum konverterat till UTC

invoice_due_date_ts_utc

TIMESTAMP

Tidsstämpel för förfall (UTC)

2024-10-15 23:59:59.000

Förfallodatum konverterat till UTC

invoice_paid_date_ts_utc

TIMESTAMP

Tidsstämpel för betalning (UTC)

2024-09-20 16:45:30.456, NULL

Tid då betalning togs emot i UTC

Lokala tidsstämplar (avdelningens tidszon)

Kolumn

Typ

Beskrivning

Exempel

Affärslogik

created_ts_local

TIMESTAMP

Tidsstämpel för skapande (lokalt)

2024-09-15 10:30:25.123

invoice_date_ts_local

TIMESTAMP

Tidsstämpel för faktura (lokalt)

2024-09-15 08:00:00.000

invoice_due_date_ts_local

TIMESTAMP

Tidsstämpel för förfall (lokalt)

2024-10-15 19:59:59.000

invoice_paid_date_ts_local

TIMESTAMP

Tidsstämpel för betalning (lokalt)

2024-09-20 12:45:30.456, NULL

Vanliga frågemönster

Intäktsanalys

-- Monthly revenue by payment methodSELECT     DATE_TRUNC('month', invoice_date) as month,    payment_method_type,    COUNT(*) as invoice_count,    SUM(total_incl_vat) as revenue,    currency_codeFROM production.invoices WHERE provet_id = 'your_practice_id'    AND invoice_status IN ('paid', 'finalized')    AND invoice_date >= '2024-01-01'GROUP BY 1, 2, 5ORDER BY 1 DESC, 4 DESC;

Utestående fordringar

-- Aging analysis of unpaid invoicesSELECT     CASE         WHEN DATEDIFF(CURRENT_DATE(), invoice_due_date) <= 0 THEN 'Current'        WHEN DATEDIFF(CURRENT_DATE(), invoice_due_date) <= 30 THEN '1-30 days'        WHEN DATEDIFF(CURRENT_DATE(), invoice_due_date) <= 60 THEN '31-60 days'        ELSE 'Over 60 days'    END as aging_bucket,    COUNT(*) as invoice_count,    SUM(amount_due) as total_outstanding,    currency_codeFROM production.invoicesWHERE provet_id = 'your_practice_id'    AND amount_due > 0GROUP BY 1, 4ORDER BY 1;

Veterinärprestation

-- Top performing veterinarians by consultation revenueSELECT     supervising_veterinarian_name,    COUNT(DISTINCT invoice_id) as consultations,    SUM(total_incl_vat) as total_revenue,    AVG(total_incl_vat) as avg_consultation_value,    currency_codeFROM production.invoicesWHERE provet_id = 'your_practice_id'    AND invoice_type = 'consultation'    AND supervising_veterinarian_name IS NOT NULL    AND invoice_date >= DATE_SUB(CURRENT_DATE(), 30)GROUP BY 1, 5ORDER BY 3 DESC;

Viktiga anmärkningar om användning

Hantering av flera valutor

Inkludera alltid currency_code när du aggregerar finansiella data över avdelningar:

-- CORRECT: Group by currencySELECT currency_code, SUM(total_incl_vat) as revenueFROM production.invoices GROUP BY currency_code;-- INCORRECT: Mixing currenciesSELECT SUM(total_incl_vat) as revenue  -- May mix EUR + USD + GBPFROM production.invoices;

Bästa praxis för tidszoner

  • Använd fälten *_ts_local för affärsrapportering och användargränssnitt

  • Använd fälten *_ts_utc för systemintegration och datahantering

  • Tänk alltid på avdelningens tidszon när du tolkar lokala tidsstämplar

Fick du svar på din fråga?