1import{u as pe,r as i,s as ge,j as e,w as N,x as b,K as w,N as y,$ as H,G as _,H as z,J as E,O,B as Te,o as Ve}from"./index-MoAbC8_9.js";import{O as Ae}from"./OwnersLayout-Cd0M3dw8.js";import{u as Ge}from"./usePersistedYear-CMpOJqHk.js";import{B as re}from"./badge-BHbYeRgi.js";import{S as ne,a as le,b as oe,c as ie,d as P}from"./select-ChAxOmxm.js";import{T as Ke,a as He,b as ce,d as _e,e as k,c as ze}from"./table-BNHSYido.js";import{T as Ee}from"./table-pagination-DgaWMZqT.js";import{C as de}from"./calculator-GhS8BFwe.js";import{I as B}from"./info-CZr0REZX.js";import{H as De}from"./house-DjS1WMqx.js";import{F as Fe}from"./flame-wMx8KIS8.js";import{P as Me}from"./percent-C2_9q8nG.js";import{E as Pe}from"./euro-Cc6O9qjZ.js";import{R as me,a as Be,T as xe,C as Ie,X as Ye,Y as We,L as Re,B as U}from"./generateCategoricalChart-C2b_mvpD.js";import{P as Je,a as Le}from"./PieChart-C9_Ud7Rw.js";import{B as $e}from"./BarChart-FFUEJ1QK.js";import{A as Oe,a as Ue}from"./arrow-up-D486G_0n.js";import{A as qe}from"./arrow-up-down-D7o6PKMM.js";import"./Header-CnJGZ8vQ.js";import"./mountain-BHfTfCFy.js";import"./user-Cvsz7Lm_.js";import"./separator-CQ84aZ0V.js";import"./collapsible-BIxz44zB.js";import"./skeleton-ClxqB572.js";import"./breadcrumb-CmKLwRya.js";import"./switch-BHj3-8MN.js";import"./index-D9-GACGG.js";import"./receipt-DnGXta2k.js";import"./building-crte1H4H.js";import"./file-text-Bif0RP8Y.js";import"./chart-column-Bo5i9GGE.js";import"./upload-BH1HltYO.js";import"./piggy-bank-DP-A2O0m.js";import"./landmark-C0TkBs1l.js";import"./trending-up-Cg9WFJWB.js";import"./users-xui-UtA1.js";import"./eye-DKrvAixa.js";import"./dialog-DrI7Oddz.js";import"./tabs-5EVsfllK.js";import"./textarea-4z16PwID.js";import"./index-BdQq_4o_.js";import"./chevron-down-BDe4YKQW.js";import"./chevron-up-JyGCcpt9.js";import"./chevron-left-BrISfdwW.js";import"./index-Dh4i1-J3.js";const he=.3,ue=.7,Qe=({heatingCosts:I})=>{const{language:s}=pe(),[h,Y]=i.useState([]),[q,D]=i.useState(!0),[f,F]=i.useState("totalGross"),[x,T]=i.useState("desc"),[W,Q]=i.useState(1),[S,je]=i.useState(10),V=i.useMemo(()=>[...new Set(h.map(t=>t.year))].sort((t,a)=>a-t),[h]),{selectedYear:p,setSelectedYear:fe}=Ge(V),[A,X]=i.useState(p);i.useEffect(()=>{p!=="all"&&X(p)},[p]),i.useEffect(()=>{Ne()},[]);const Ne=async()=>{const{data:t}=await ge.from("apartment_heating_costs").select("*").order("year",{ascending:!0});t&&Y(t),D(!1)},be=i.useMemo(()=>p==="all"?h:h.filter(t=>t.year===parseInt(p)),[h,p]),G=i.useMemo(()=>V.map(t=>{const a=h.filter(m=>m.year===t),r=a.reduce((m,u)=>m+Number(u.heating_net_eur),0),c=a.reduce((m,u)=>m+Number(u.warmwater_net_eur),0),l=r+c,o=a.reduce((m,u)=>m+Number(u.total_gross_eur),0),d=l*he,g=l*ue;return{year:t.toString(),grundkosten:d,verbrauchskosten:g,warmwater:c,heating:r,total:o,vat:a.reduce((m,u)=>m+Number(u.vat_total_eur),0)}}),[h,V]),K=i.useMemo(()=>{const t=p==="all"?G.reduce((a,r)=>({grundkosten:a.grundkosten+r.grundkosten,verbrauchskosten:a.verbrauchskosten+r.verbrauchskosten,warmwater:a.warmwater+r.warmwater,vat:a.vat+r.vat}),{grundkosten:0,verbrauchskosten:0,warmwater:0,vat:0}):G.find(a=>a.year===p)||{grundkosten:0,verbrauchskosten:0,warmwater:0,vat:0};return[{name:s==="de"?"Grundkosten (30%)":"Fixed Costs (30%)",value:t.grundkosten,color:"hsl(var(--primary))"},{name:s==="de"?"Verbrauchskosten (70%)":"Consumption (70%)",value:t.verbrauchskosten,color:"hsl(25 85% 60%)"},{name:s==="de"?"MwSt.":"VAT",value:t.vat,color:"hsl(var(--muted-foreground))"}]},[G,p,s]),Z=i.useMemo(()=>A==="all"?h:h.filter(t=>t.year===parseInt(A)),[h,A]),M=i.useMemo(()=>{const t=Z.map(r=>{const c=Number(r.heating_net_eur)*he,l=Number(r.heating_net_eur)*ue,o=Number(r.warmwater_net_eur),d=Number(r.heating_net_eur)+o;return{apartment:r.apartment_code,owner:r.owner_name,year:r.year,area:r.area_sqm||0,heatingFixedNet:c,heatingFixedGross:c*1.2,heatingVariableNet:l,heatingVariableGross:l*1.2,warmwaterNet:o,warmwaterGross:o*1.2,vat:Number(r.vat_total_eur),totalNet:d,totalGross:Number(r.total_gross_eur)}}),a=(r,c)=>{const l=/(\D*)(\d*)(\D*)/g,o=r.match(l)||[],d=c.match(l)||[];for(let g=0;g<Math.max(o.length,d.length);g++){const m=o[g]||"",u=d[g]||"",C=m.match(/^(\D*)(\d*)(\D*)$/),j=u.match(/^(\D*)(\d*)(\D*)$/);if(C&&j){const ee=C[1].localeCompare(j[1]);if(ee!==0)return ee;const se=parseInt(C[2])||0,te=parseInt(j[2])||0;
1if(se!==te)return se-te;const ae=C[3].localeCompare(j[3]);if(ae!==0)return ae}}return 0};return t.sort((r,c)=>{const l=r[f],o=c[f];if(f==="apartment"&&typeof l=="string"&&typeof o=="string"){const d=a(l,o);return x==="asc"?d:-d}return typeof l=="string"&&typeof o=="string"?x==="asc"?l.localeCompare(o):o.localeCompare(l):x==="asc"?l-o:o-l})},[Z,f,x]),ve=Math.ceil(M.length/S),we=i.useMemo(()=>{const t=(W-1)*S;return M.slice(t,t+S)},[M,W,S]);i.useEffect(()=>{Q(1)},[A,f,x,S]);const ye=t=>{f===t?T(x==="asc"?"desc":"asc"):(F(t),T("desc"))},v=({label:t,sortKeyName:a,tooltip:r,className:c=""})=>e.jsx(ze,{className:c,children:e.jsx("div",{className:"flex items-center gap-1",children:e.jsx(H,{children:e.jsxs(_,{children:[e.jsx(z,{asChild:!0,children:e.jsxs(Te,{variant:"ghost",size:"sm",className:"h-auto p-0 font-medium hover:bg-transparent",onClick:()=>ye(a),children:[t,f===a?x==="asc"?e.jsx(Oe,{className:"h-3 w-3 ml-1"}):e.jsx(Ue,{className:"h-3 w-3 ml-1"}):e.jsx(qe,{className:"h-3 w-3 ml-1 opacity-50"})]})}),e.jsx(E,{className:"max-w-xs",children:e.jsx("p",{className:"text-xs",children:r})})]})})})}),n=t=>new Intl.NumberFormat(s==="de"?"de-DE":"en-GB",{style:"currency",currency:"EUR"}).format(t),R=K[0].value,J=K[1].value,L=K[2].value,$=R+J,ke=$+L,Ce=R*1.2,Se=J*1.2;return e.jsxs("div",{className:"space-y-6",children:[e.jsx(N,{className:"bg-amber-50 dark:bg-amber-950/20 border-amber-200 dark:border-amber-800",children:e.jsx(b,{className:"py-3",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(de,{className:"h-5 w-5 text-amber-600 mt-0.5 shrink-0"}),e.jsxs("div",{className:"text-sm",children:[e.jsx("p",{className:"font-medium text-amber-900 dark:text-amber-100",children:s==="de"?"Ausgabekosten (Techem Abrechnung)":"Output Costs (Techem Billing)"}),e.jsx("p",{className:"text-amber-700 dark:text-amber-300 mt-0.5",children:s==="de"?"Diese Ansicht zeigt die von Techem berechneten Kosten, die den einzelnen Wohnungen zugeordnet werden. Enthält MwSt. und basiert auf dem 30/70 Verteilungsschlüssel (Grundkosten/Verbrauch).":"This view shows costs calculated by Techem and allocated to apartments. Includes VAT and is based on 30/70 distribution (fixed/consumption)."})]})]})})}),e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:s==="de"?"Jahr:":"Year:"}),e.jsxs(ne,{value:p,onValueChange:fe,children:[e.jsx(le,{className:"w-[150px]",children:e.jsx(oe,{})}),e.jsxs(ie,{children:[e.jsx(P,{value:"all",children:s==="de"?"Alle Jahre":"All Years"}),V.map(t=>e.jsx(P,{value:t.toString(),children:t},t))]})]})]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-4",children:[e.jsxs(N,{className:"border-l-4 border-l-primary",children:[e.jsxs(w,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsxs(y,{className:"text-sm font-medium flex items-center gap-1",children:[s==="de"?"Grundkosten":"Fixed Costs",e.jsx(H,{children:e.jsxs(_,{children:[e.jsx(z,{asChild:!0,children:e.jsx(B,{className:"h-3.5 w-3.5 text-muted-foreground cursor-help"})}),e.jsx(E,{className:"max-w-xs",children:e.jsx("p",{className:"text-xs",children:s==="de"?"30% der Heizkosten werden nach Quadratmetern verteilt. Jeder Eigentümer zahlt anteilig nach Wohnfläche.":"30% of heating costs distributed by square meters. Each owner pays proportionally based on living area."})})]})})]}),e.jsx(De,{className:"h-4 w-4 text-primary"})]}),e.jsxs(b,{children:[e.jsx("div",{className:"text-2xl font-bold",children:n(Ce)}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:[n(R)," netto"]}),e.jsxs("div",{className:"flex items-center gap-1 mt-1",children:[e.jsx(re,{variant:"secondary",children:"30%"}),e.jsx("span",{className:"text-xs text-muted-foreground",children:s==="de"?"der Heizkosten":"of heating costs"})]})]})]}),e.jsxs(N,{className:"border-l-4 border-l-orange-500",children:[e.jsxs(w,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsxs(y,{className:"text-sm font-medium flex items-center gap-1",children:[s==="de"?"Verbrauchskosten":"Consumption Costs",e.jsx(H,{children:e.jsxs(_,{children:[e.jsx(z,{asChild:!0,children:e.jsx(B,{className:"h-3.5 w-3.5 text-muted-foreground cursor-help"})}),e.jsx(E,{className:"max-w-xs",children:e.jsx("p",{className:"text-xs",children:s==="de"?"70% der Heizkosten werden nach tatsächlichem Verbrauch (HKV-Einheiten) verteilt. Wer mehr heizt, zahlt mehr.":"70% of heating costs distributed by actual consumption (HKV units). Those who heat more, pay more."})})]})})]}),e.jsx(Fe,{className:"h-4 w-4 text-orange-500"})]}),e.jsxs(b,{children:[e.jsx("div",{className:"text-2xl font-bold",children:n(Se)}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:[n(J)," netto"]}),e.jsxs("div",{className:"flex items-center gap-1 mt-1",children:[e.jsx(re,{variant:"secondary",children:"70%"}),e.jsx("span",{className:"text-xs text-muted-foreground",children:s==="de"?"der Heizkosten":"of heating costs"})]})]})]}),e.jsxs(N,{className:"border-l-4 border-l-muted-foreground",children:[e.jsxs(w,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsxs(y,{className:"text-sm font-medium flex items-center gap-1",children:[s==="de"?"MwSt.":"VAT",e.jsx(H,{children:e.jsxs(_,{children:[e.jsx(z,{asChild:!0,children:e.jsx(B,{className:"h-3.5 w-3.5 text-muted-foreground cursor-help"})}),e.jsx(E,{className:"max-w-xs",children:e.jsx("p",{className:"text-xs",children:s==="de"?"Mehrwertsteuer (2
10%) auf alle Heizkosten.":"Value Added Tax (20%) on all heating costs."})})]})})]}),e.jsx(Me,{className:"h-4 w-4 text-muted-foreground"})]}),e.jsxs(b,{children:[e.jsx("div",{className:"text-2xl font-bold",children:n(L)}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:[(L/$*100).toFixed(0),"% ",s==="de"?"von netto":"of net"]})]})]}),e.jsxs(N,{className:"border-l-4 border-l-green-600",children:[e.jsxs(w,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsxs(y,{className:"text-sm font-medium flex items-center gap-1",children:[s==="de"?"Gesamt Brutto":"Total Gross",e.jsx(H,{children:e.jsxs(_,{children:[e.jsx(z,{asChild:!0,children:e.jsx(B,{className:"h-3.5 w-3.5 text-muted-foreground cursor-help"})}),e.jsx(E,{className:"max-w-xs",children:e.jsx("p",{className:"text-xs",children:s==="de"?"Summe aller Heizkosten inkl. MwSt. aus Techem-Abrechnung.":"Sum of all heating costs incl. VAT from Techem billing."})})]})})]}),e.jsx(Pe,{className:"h-4 w-4 text-green-600"})]}),e.jsxs(b,{children:[e.jsx("div",{className:"text-2xl font-bold",children:n(ke)}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:[n($)," netto · ",be.length," ",s==="de"?"Einträge":"entries"]})]})]})]}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[e.jsxs(N,{children:[e.jsxs(w,{children:[e.jsxs(y,{className:"font-serif flex items-center gap-2",children:[e.jsx(de,{className:"h-5 w-5 text-primary"}),s==="de"?"Kostenstruktur":"Cost Structure"]}),e.jsx(O,{children:s==="de"?"Aufteilung in Grundkosten und Verbrauchskosten":"Split between fixed and consumption-based costs"})]}),e.jsx(b,{children:e.jsx(me,{width:"100%",height:300,children:e.jsxs(Je,{children:[e.jsx(Le,{data:K,cx:"50%",cy:"50%",labelLine:!1,label:({name:t,percent:a})=>`${t}: ${(a*100).toFixed(0)}%`,outerRadius:100,dataKey:"value",children:K.map((t,a)=>e.jsx(Be,{fill:t.color},`cell-${a}`))}),e.jsx(xe,{content:({active:t,payload:a})=>{var d,g;if(!t||!a||a.length===0)return null;const r=a[0],c=Number(r.value),l=((d=r.name)==null?void 0:d.toString().includes("MwSt"))||((g=r.name)==null?void 0:g.toString().includes("VAT")),o=l?c:c*1.2;return e.jsxs("div",{className:"bg-background border rounded-lg shadow-lg p-3",children:[e.jsx("p",{className:"font-medium mb-1",children:r.name}),e.jsx("p",{className:"text-lg font-bold",children:n(o)}),!l&&e.jsxs("p",{className:"text-xs text-muted-foreground",children:[n(c)," netto"]})]})}})]})})})]}),e.jsxs(N,{children:[e.jsxs(w,{children:[e.jsx(y,{className:"font-serif flex items-center gap-2",children:s==="de"?"Struktur nach Jahren":"Structure by Year"}),e.jsx(O,{children:s==="de"?"Fixe vs. variable Kosten im Zeitverlauf":"Fixed vs variable costs over time"})]}),e.jsx(b,{children:G.length>0?e.jsx(me,{width:"100%",height:300,children:e.jsxs($e,{data:G,children:[e.jsx(Ie,{strokeDasharray:"3 3",className:"stroke-muted"}),e.jsx(Ye,{dataKey:"year",className:"text-xs"}),e.jsx(We,{className:"text-xs",tickFormatter:t=>`â¬${(t/1e3).toFixed(0)}k`}),e.jsx(xe,{content:({active:t,payload:a,label:r})=>{var m,u,C;if(!t||!a||a.length===0)return null;const c=((m=a.find(j=>j.dataKey==="grundkosten"))==null?void 0:m.value)||0,l=((u=a.find(j=>j.dataKey==="verbrauchskosten"))==null?void 0:u.value)||0,o=((C=a.find(j=>j.dataKey==="vat"))==null?void 0:C.value)||0,d=c+l,g=d+o;return e.jsxs("div",{className:"bg-background border rounded-lg shadow-lg p-3",children:[e.jsx("p",{className:"font-semibold mb-2",children:r}),e.jsxs("div",{className:"space-y-1 text-sm",children:[e.jsxs("div",{className:"flex justify-between gap-4",children:[e.jsxs("span",{style:{color:"hsl(var(--primary))"},children:[s==="de"?"Grundkosten":"Fixed",":"]}),e.jsxs("div",{className:"text-right",children:[e.jsx("span",{className:"font-medium",children:n(c*1.2)}),e.jsxs("span",{className:"text-xs text-muted-foreground ml-1",children:["(",n(c)," netto)"]})]})]}),e.jsxs("div",{className:"flex justify-between gap-4",children:[e.jsxs("span",{style:{color:"hsl(25 85% 60%)"},children:[s==="de"?"Verbrauch":"Consumption",":"]}),e.jsxs("div",{className:"text-right",children:[e.jsx("span",{className:"font-medium",children:n(l*1.2)}),e.jsxs("span",{className:"text-xs text-muted-foreground ml-1",children:["(",n(l)," netto)"]})]})]}),e.jsxs("div",{className:"flex justify-between gap-4 text-muted-foreground",children:[e.jsxs("span",{children:[s==="de"?"MwSt.":"VAT",":"]}),e.jsx("span",{children:n(o)})]}),e.jsxs("div",{className:"flex justify-between gap-4 pt-1 border-t font-bold",children:[e.jsxs("span",{children:[s==="de"?"Gesamt"
1:"Total",":"]}),e.jsxs("div",{className:"text-right",children:[e.jsx("span",{children:n(g)}),e.jsxs("span",{className:"text-xs text-muted-foreground font-normal ml-1",children:["(",n(d)," netto)"]})]})]})]})]})}}),e.jsx(Re,{}),e.jsx(U,{dataKey:"grundkosten",stackId:"a",name:s==="de"?"Grundkosten":"Fixed Costs",fill:"hsl(var(--primary))"}),e.jsx(U,{dataKey:"verbrauchskosten",stackId:"a",name:s==="de"?"Verbrauchskosten":"Consumption",fill:"hsl(25 85% 60%)"}),e.jsx(U,{dataKey:"vat",stackId:"a",name:s==="de"?"MwSt.":"VAT",fill:"hsl(var(--muted-foreground))",radius:[4,4,0,0]})]})}):e.jsx("div",{className:"h-[300px] flex items-center justify-center text-muted-foreground",children:s==="de"?"Keine Daten verfügbar":"No data available"})})]})]}),e.jsxs(N,{className:"bg-muted/30",children:[e.jsx(w,{children:e.jsx(y,{className:"font-serif text-lg",children:s==="de"?"Wie werden die Kosten aufgeteilt?":"How are costs split?"})}),e.jsxs(b,{className:"grid gap-4 md:grid-cols-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-4 h-4 rounded",style:{backgroundColor:"hsl(var(--primary))"}}),e.jsx("span",{className:"font-medium",children:s==="de"?"Grundkosten (30%)":"Fixed Costs (30%)"})]}),e.jsx("p",{className:"text-sm text-muted-foreground pl-6",children:s==="de"?"Werden nach Quadratmetern verteilt. Jeder Eigentümer zahlt anteilig nach Wohnfläche, unabhängig vom tatsächlichen Verbrauch.":"Distributed by square meters. Each owner pays proportionally based on living area, regardless of actual consumption."})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-4 h-4 rounded",style:{backgroundColor:"hsl(25 85% 60%)"}}),e.jsx("span",{className:"font-medium",children:s==="de"?"Verbrauchskosten (70%)":"Consumption Costs (70%)"})]}),e.jsx("p",{className:"text-sm text-muted-foreground pl-6",children:s==="de"?"Werden nach tatsächlichem Verbrauch (HKV-Einheiten) verteilt. Wer mehr heizt, zahlt mehr.":"Distributed by actual consumption (HKV units). Those who heat more, pay more."})]})]})]}),e.jsxs(N,{children:[e.jsx(w,{children:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx(y,{className:"font-serif",children:s==="de"?"Detailaufstellung nach Apartment":"Detailed Breakdown by Apartment"}),e.jsx(O,{children:s==="de"?"Aufteilung der Kosten pro Apartment":"Cost split per apartment"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:s==="de"?"Jahr:":"Year:"}),e.jsxs(ne,{value:A,onValueChange:X,children:[e.jsx(le,{className:"w-[130px]",children:e.jsx(oe,{})}),e.jsxs(ie,{children:[e.jsx(P,{value:"all",children:s==="de"?"Alle Jahre":"All Years"}),V.map(t=>e.jsx(P,{value:t.toString(),children:t},t))]})]})]})]})}),e.jsxs(b,{children:[e.jsx("div",{className:"rounded-md border overflow-x-auto",children:e.jsxs(Ke,{children:[e.jsx(He,{children:e.jsxs(ce,{children:[e.jsx(v,{label:"Apartment",sortKeyName:"apartment",tooltip:s==="de"?"Wohnungsnummer (Top)":"Apartment number (Top)"}),e.jsx(v,{label:s==="de"?"Jahr":"Year",sortKeyName:"year",tooltip:s==="de"?"Abrechnungsjahr":"Billing year"}),e.jsx(v,{label:s==="de"?"Fläche":"Area",sortKeyName:"area",tooltip:s==="de"?"Heizfläche in m²":"Heating area in m²",className:"text-right"}),e.jsx(v,{label:s==="de"?"Grundkosten":"Fixed",sortKeyName:"heatingFixedGross",tooltip:s==="de"?"30% der Heizkosten nach m² verteilt":"30% of heating costs distributed by m²",className:"text-right"}),e.jsx(v,{label:s==="de"?"Verbrauch":"Consumption",sortKeyName:"heatingV
1ariableGross",tooltip:s==="de"?"70% der Heizkosten nach tatsächlichem Verbrauch":"70% of heating costs by actual consumption",className:"text-right"}),e.jsx(v,{label:s==="de"?"Warmwasser":"Hot Water",sortKeyName:"warmwaterGross",tooltip:s==="de"?"Warmwasserkosten inkl. Aufbereitung":"Hot water costs incl. heating",className:"text-right"}),e.jsx(v,{label:s==="de"?"MwSt.":"VAT",sortKeyName:"vat",tooltip:s==="de"?"Mehrwertsteuer (20%)":"Value Added Tax (20%)",className:"text-right"}),e.jsx(v,{label:s==="de"?"Gesamt Brutto":"Total Gross",sortKeyName:"totalGross",tooltip:s==="de"?"Gesamtkosten inkl. MwSt.":"Total costs incl. VAT",className:"text-right"})]})}),e.jsx(_e,{children:we.map((t,a)=>e.jsxs(ce,{children:[e.jsx(k,{className:"font-medium",children:t.apartment}),e.jsx(k,{children:t.year}),e.jsxs(k,{className:"text-right",children:[t.area.toFixed(1)," m²"]}),e.jsxs(k,{className:"text-right",children:[e.jsx("div",{children:n(t.heatingFixedGross)}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:[n(t.heatingFixedNet)," netto"]})]}),e.jsxs(k,{className:"text-right",children:[e.jsx("div",{children:n(t.heatingVariableGross)}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:[n(t.heatingVariableNet)," netto"]})]}),e.jsxs(k,{className:"text-right",children:[e.jsx("div",{children:n(t.warmwaterGross)}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:[n(t.warmwaterNet)," netto"]})]}),e.jsx(k,{className:"text-right text-muted-foreground",children:n(t.vat)}),e.jsxs(k,{className:"text-right",children:[e.jsx("div",{className:"font-bold",children:n(t.totalGross)}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:[n(t.totalNet)," netto"]})]})]},a))})]})}),e.jsx(Ee,{currentPage:W,totalPages:ve,pageSize:S,totalItems:M.length,onPageChange:Q,onPageSizeChange:je,language:s})]})]})]})},Ws=()=>{const{user:I}=Ve(),{language:s}=pe(),[h,Y]=i.useState([]),[q,D]=i.useState(!0);i.useEffect(()=>{I&&f()},[I]);const f=async()=>{D(!0);const{data:T}=await ge.from("heating_costs").select("*").order("year",{ascending:!0});T&&Y(T),D(!1)},F={de:{title:"Kostenstruktur",description:"Aufschlüsselung der Heizkosten nach Komponenten",costs:"Kosten",heating:"Heizkosten",structure:"Struktur"},en:{title:"Cost Structure",description:"Breakdown of heating costs by components",costs:"Costs",heating:"Heating",structure:"Structure"},cs:{title:"Struktura nákladů",description:"Rozklad nákladů na vytápÄnà podle složek",costs:"Náklady",heating:"VytápÄnÃ",structure:"Struktura"}},x=F[s]||F.cs;
1return e.jsx(Ae,{title:x.title,description:x.description,breadcrumbs:[{label:x.costs,href:"/owners/costs"},{label:x.heating,href:"/owners/costs/heating"},{label:x.structure}],isLoading:q,children:e.jsx(Qe,{heatingCosts:h})})};export{Ws as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.