Følgende dokumentasjon beskriver
production.invoices-tabellen, en nøkkelkomponent i Veterinærpraksis’ dataplattform. Denne tabellen gir direkte tilgang til standardiserte, testede og berikede fakturadata, slik at du kan øke hastigheten på analyser og finansiell rapportering.
Detaljert kolonnehenvisning
Kjerneidentifikatorer
Kolonne | Type | Beskrivelse | Eksempler | Forretningslogikk |
provet_id | STRING | Din unike praksis-ID | "pcus_1" | Leietaker-isolasjonsnøkkel – filtrer alltid på denne for ytelse |
invoice_id | BIGINT | Unik faktura-ID i praksisen | 12345, 67890 | Systemgenerert og uforanderlig når den først er opprettet |
invoice_number | STRING | Fakturanummeret som vises til kunder | "1001-2024-00123", "DEPT2-240915-456" | Format: {department_id}-{date}-{sequence}. NULL til faktura er ferdigstilt (status=3) |
Klassifisering av faktura
Kolonne | Type | Beskrivelse | Eksempler | Forretningslogikk |
invoice_type | STRING | Avledet fakturatypkategori | "consultation", "countersale", "credit_note" | Logikk: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 | Relatert referanse for konsultasjon | 98765, NULL | Lenker til konsultasjonsoppføring. NULL for direktesalg og kreditnotaer |
invoice_status | STRING | Gjeldende status for faktura | "pending", "paid", "cancelled" | Tilordning: 0=Utkast, 1=Sendt, 2=Åpnet, 3=Ferdigstilt, 4=Fakturering, 99=Annullert. Merk: "pending"/"paid"/"cancelled" er forenklede forretningsbegreper |
Finansiell informasjon
Kolonne | Type | Beskrivelse | Eksempler | Forretningslogikk |
total_incl_vat | DECIMAL | Total beløp inkludert MVA/skatt | 125.50, 89.99 | Endelig fakturerbart beløp inkludert alle avgifter |
total_excl_vat | DECIMAL | Total beløp ekskludert MVA/skatt | 100.40, 74.99 | Grunnbeløpet før beregning av skatt |
amount_due | DECIMAL | Utestående saldo som gjenstår | 125.50, 0.00, 25.00 | Reduseres når betalinger blir registrert. 0.00 = fullt betalt |
currency_code | STRING | ISO 4217-valutakode | "EUR", "USD", "GBP", "CAD" | Auto-tilordnet fra land for avdeling |
currency_name | STRING | Fullt valutnavn | "Euro", "US Dollar", "British Pound Sterling" | Valutabeskjkrivelse for mennesker |
Kunde- & veterinærinformasjon
Kolonne | Type | Beskrivelse | Eksempler | Forretningslogikk |
client_name | STRING | Kunde/Betaler-navn | "John Smith", "Pet Insurance Co", "Sarah Johnson" | Fra payer_name-feltet i kildedata |
supervising_veterinarian_name | STRING | Fullt navn på ansvarlig veterinær | "Dr. Emily Watson", "Michael Chen DVM", NULL | Logikk: `first_name |
Detaljer for betalingsmåte
Kolonne | Type | Beskrivelse | Eksempler | Forretningslogikk |
payment_method_type | STRING | Standardisert betalingskategori | "Card", "Cash or Check", "Digital Wallet", "Financing" | Auto-kategoriseringslogikk: Card-flag → "Card", Cash/Check-nøkkelord → "Cash or Check", CareCredit/Scratchpay → "Financing" osv. |
payment_method_name | STRING | Opprinnelig navn på betalingsmåte | "Visa Credit Card", "Cash", "CareCredit" | Rått navn fra praksisadministrasjonssystemet |
payment_method_name_standardized | STRING | Standardisert betalingsnavn | "Visa", "Cash", "CareCredit" | Standardiseringslogikk: Mønstermatching (f.eks. '%visa%' → 'Visa', '%mastercard%' → 'Mastercard') |
Avdeling- og lokasjonsinformasjon
Kolonne | Type | Beskrivelse | Eksempler | Forretningslogikk |
department_id | BIGINT | Avdelings-/klinikken-id | 1001, 2005 | Lenker til spesifikk klinikklokasjon |
department_name | STRING | Avdelings-/klinikknavn | "Main Street Veterinary", "Emergency Clinic Downtown" | Virksomhetsnavn for lokasjonen |
department_timezone | STRING | IANA-tidssoneidentifikator | "America/New_York", "Europe/London", "Australia/Sydney" | Brukes for lokale tid-konverteringer |
Datofelter (forretningsdatoer)
Kolonne | Type | Beskrivelse | Eksempler | Forretningslogikk |
created_date | DATE | Dato for opprettelse av faktura | 2024-09-15, 2024-08-22 | Datodelen av opprettelsestidsstempelet |
invoice_date | DATE | Offisiell fakturadato | 2024-09-15, 2024-08-22 | Forretningsdato som vises på fakturaen |
invoice_due_date | DATE | Forfallsdato for betaling | 2024-10-15, 2024-09-22 | Når betaling forventes |
invoice_paid_date | DATE | Dato da betaling ble mottatt | 2024-09-20, NULL | NULL for ubetalte fakturaer |
UTC-tidsstempler (systemtider)
Kolonne | Type | Beskrivelse | Eksempler | Forretningslogikk |
created_ts_utc | TIMESTAMP | Tidsstempel for opprettelse (UTC) | 2024-09-15 14:30:25.123 | Systemtid for opprettelse i UTC |
invoice_date_ts_utc | TIMESTAMP | Tidsstempel for faktura (UTC) | 2024-09-15 12:00:00.000 | Fakturadato konvertert til UTC |
invoice_due_date_ts_utc | TIMESTAMP | Tidsstempel for forfall (UTC) | 2024-10-15 23:59:59.000 | Forfallsdato konvertert til UTC |
invoice_paid_date_ts_utc | TIMESTAMP | Tidsstempel for betaling (UTC) | 2024-09-20 16:45:30.456, NULL | Tidspunkt for mottatt betaling i UTC |
Lokale tidsstempler (avdelingens tidssone)
Kolonne | Type | Beskrivelse | Eksempler | Forretningslogikk |
created_ts_local | TIMESTAMP | Tidsstempel for opprettelse (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 | Tidsstempel for forfall (lokalt) | 2024-10-15 19:59:59.000 | |
invoice_paid_date_ts_local | TIMESTAMP | Tidsstempel for betaling (lokalt) | 2024-09-20 12:45:30.456, NULL |
Vanlige spørringsmønstre
Inntektsanalyse
-- 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 ford.inger
-- 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ærprestasjon
-- 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;
Viktige bruksnotater
Håndtering av flere valutaer
Inkluder alltid currency_code når du aggregerer finansiell data på tvers av avdelinger:
-- 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;
Beste praksis for tidssone
Bruk *_ts_local-feltene for forretningsrapportering og brukergrensesnitt
Bruk *_ts_utc-feltene for systemintegrasjon og databehandling
Vurder alltid avdelingens tidssone når du tolker lokale tidsstempler
