Spring videre til hovedindholdet

production.invoices

Den følgende dokumentation beskriver <br/>productions.invoices-tabellen, som er en central del af Veterinærpraksis’ Data Platform. Denne tabel …

Den følgende dokumentation beskriver

production.invoices-tabellen, som er en central del af Veterinary Practice Data Platform. Tabellen giver direkte adgang til standardiserede, testede og berigede fakturadata, så du kan fremskynde analyser og økonomisk rapportering.

Detaljeret kolonne-oversigt

Grundlæggende identifikatorer

Kolonne

Type

Beskrivelse

Eksempler

Forretningslogik

provet_id

STRING

Din unikke identifikator for praksis

"pcus_1"

Tenant-isoleringsnøgle - filtrér altid på denne for ydeevne

invoice_id

BIGINT

Unik fakturaidentifikator inden for praksis

12345, 67890

Systemgenereret og uforanderlig, når den er oprettet

invoice_number

STRING

Fakturanummer i forretningen, som vises til klienter

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

Format: {department_id}-{date}-{sequence}. NULL, indtil fakturaen er afsluttet (status=3)

Klassifikation af faktura

Kolonne

Type

Beskrivelse

Eksempler

Forretningslogik

invoice_type

STRING

Afledt fakturakategori

"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

Relateret konsultationsreference

98765, NULL

Link til konsultationspost. NULL for kontantsalg og kreditnotaer

invoice_status

STRING

Nuværende faktura-tilstand

"pending", "paid", "cancelled"

Mapping: 0=Kladde, 1=Sendt, 2=Åben, 3=Afsluttet, 4=Fakturakladde, 99=Annulleret. Bemærk: "pending"/"paid"/"cancelled" er forenklede forretningsbegreber

Finansielle oplysninger

Kolonne

Type

Beskrivelse

Eksempler

Forretningslogik

total_incl_vat

DECIMAL

Total beløb inklusive Moms/skat

125.50, 89.99

Endelig fakturerbart beløb inklusive alle skatter

total_excl_vat

DECIMAL

Total beløb eksklusive Moms/skat

100.40, 74.99

Grundbeløb før moms-/skatberegninger

amount_due

DECIMAL

Udestående Saldo, der er tilbage

125.50, 0.00, 25.00

Falder, efterhånden som betalinger bliver anvendt. 0.00 = fuldt betalt

currency_code

STRING

ISO 4217-valutakode

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

Kortlagt automatisk ud fra afdelingens land

currency_name

STRING

Fuldt navn på valutaen

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

Valutabeskrivelse i et menneskeligt læsbart format

Oplysninger om klient & dyrlæge

Kolonne

Type

Beskrivelse

Eksempler

Forretningslogik

client_name

STRING

Navn på klient/betaler

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

Fra feltet payer_name i kildedata

supervising_veterinarian_name

STRING

Fuld navn på tilsynsførende dyrlæge

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

Logik: `first_name

Detaljer om betalingsmetode

Kolonne

Type

Beskrivelse

Eksempler

Forretningslogik

payment_method_type

STRING

Standardiseret betalingskategori

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

Automatisk kategoriseringslogik: Card-flag → "Card", Cash/Check-nøgleord → "Cash or Check", CareCredit/Scratchpay → "Financing" osv.

payment_method_name

STRING

Oprindeligt navn på betalingsmetode

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

Råt navn fra journalsystemet

payment_method_name_standardized

STRING

Standardiseret betalingsnavn

"Visa", "Cash", "CareCredit"

Standardiseringslogik: Mønstermatchning (fx '%visa%' → 'Visa', '%mastercard%' → 'Mastercard')

Afdeling & lokationsoplysninger

Kolonne

Type

Beskrivelse

Eksempler

Forretningslogik

department_id

BIGINT

Identifikator for afdeling/klinik

1001, 2005

Links til specifik kliniklokation

department_name

STRING

Afdelings-/kliniknavn

"Main Street Veterinary", "Emergency Clinic Downtown"

Forretningsnavn for lokationen

department_timezone

STRING

IANA-tidszoneidentifikator

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

Bruges til lokale tidskonverteringer

Dato-felter (forretningsdatoer)

Kolonne

Type

Beskrivelse

Eksempler

Forretningslogik

created_date

DATE

Fakturakreationsdato

2024-09-15, 2024-08-22

Datodelen af oprettelsestidspunktet

invoice_date

DATE

Officiel fakturadato

2024-09-15, 2024-08-22

Forretningsdatoen vist på fakturaen

invoice_due_date

DATE

Forfaldsdato for betaling

2024-10-15, 2024-09-22

Hvornår der forventes betaling

invoice_paid_date

DATE

Datoen hvor betalingen blev modtaget

2024-09-20, NULL

NULL for ubetalte fakturaer

UTC-tidsstempler (systemtider)

Kolonne

Type

Beskrivelse

Eksempler

Forretningslogik

created_ts_utc

TIMESTAMP

Oprettelsestidsstempel (UTC)

2024-09-15 14:30:25.123

Systemets oprettelsestid i UTC

invoice_date_ts_utc

TIMESTAMP

Tidsstempel for faktura (UTC)

2024-09-15 12:00:00.000

Fakturadato konverteret til UTC

invoice_due_date_ts_utc

TIMESTAMP

Forfaldstidsstempel (UTC)

2024-10-15 23:59:59.000

Forfaldsdato konverteret til UTC

invoice_paid_date_ts_utc

TIMESTAMP

Betalingstidsstempel (UTC)

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

Tidspunkt for modtagelse af betaling i UTC

Lokale tidsstempler (afdelingens tidszone)

Kolonne

Type

Beskrivelse

Eksempler

Forretningslogik

created_ts_local

TIMESTAMP

Oprettelsestidsstempel (lokalt)

2024-09-15 10:30:25.123

invoice_date_ts_local

TIMESTAMP

Tidsstempel for faktura (lokalt)

2024-09-15 08:00:00.000

invoice_due_date_ts_local

TIMESTAMP

Forfaldstidsstempel (lokalt)

2024-10-15 19:59:59.000

invoice_paid_date_ts_local

TIMESTAMP

Betalingstidsstempel (lokalt)

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

Typiske forespørgselsmønstre

Analyse af omsætning

-- 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;

Udestående tilgodehavender

-- 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;

Præstation for dyrlæger

-- 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;

Vigtige anvendelsesnoter

Håndtering af flere valutaer

Medtag altid currency_code, når du aggregerer finansielle data på tværs af afdelinger:

-- 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;

Bedste praksis for tidszoner

  • Brug felterne *_ts_local til forretningsrapportering og brugergrænseflader

  • Brug felterne *_ts_utc til systemintegration og databehandling

  • Overvej altid afdelingens tidszone, når du fortolker lokale tidsstempler

Besvarede dette dit spørgsmål?