1import{r as n,C as e}from"./vendor-core-kDn7q5nn.js";import{l as b,q as I,B as R,bM as B,h as d,dc as i,s as C}from"./antd-DUwX4n57.js";import{g as L,b as P,i as q,q as z,lu as M,A as N,a5 as x,ej as y,a3 as _,lw as O}from"./app-shared-D9Va_FlY.js";import{f as k}from"./positionUtils-qDLn-3sj.js";import{A as D}from"./proTablePresets-BblqdjTc.js";import{S as $}from"./tableCells-DmpM0wDt.js";import{W as K}from"./workOrderStatusTone-9bpNy-vc.js";import{o as c}from"./pro-components-U2bZqxZr.js";import"./mapbox-DrKvbh0K.js";import"./xlsx-DLNWaC59.js";import"./calendar-C0yHFNg9.js";import"./iso-3166-D9CfHPRA.js";import"./charts-B4kAPUKr.js";import"./html2canvas-CBrSDip1.js";const{Title:m,Text:p}=I,f={...D,style:void 0,locale:void 0},se=()=>{const{t}=L("customerView"),{accountData:u}=n.useContext(P),g=u==null?void 0:u.timezone,j=q(),{uuid:o}=z(),[w,h]=n.useState(!0),[r,T]=n.useState(null),[l,A]=n.useState(null);if(n.useEffect(()=>{if(!o)return;(async()=>{try{h(!0);const[a,S]=await Promise.all([O.get(o),O.actuals(o)]);T(a),A(S)}catch{C.error(t("workOrders.loadError",{defaultValue:"Auftrag konnte nicht geladen werden."}))}finally{h(!1)}})()},[o]),w)return e.jsx(b,{active:!0});if(!r)return null;const v=[{title:t("workOrders.position.title",{defaultValue:"Position"}),dataIndex:"title",ellipsis:!0},{title:t("workOrders.position.quantity",{defaultValue:"Menge"}),dataIndex:"quantity",width:130,align:"right",render:(s,a)=>a.quantity==null?e.jsx(p,{type:"secondary",children:t("workOrders.position.byEffort",{defaultValue:"nach Aufwand"})}):`${a.quantity} ${a.unit}`},{title:t("workOrders.position.unitPrice",{defaultValue:"Einzelpreis"}),dataIndex:"unit_price_cents",width:120,align:"right",render:(s,a)=>k(a.unit_price_cents)},{title:t("workOrders.position.taxRate",{defaultValue:"MwSt."}),dataIndex:"tax_rate",width:90,align:"right",render:(s,a)=>`${a.tax_rate} %`}],V=[{title:t("workOrders.service",{defaultValue:"Leistung"}),dataIndex:"service_key",ellipsis:!0,render:(s,a)=>a.name_de??a.service_key},{title:t("workOrders.minutes",{defaultValue:"Minuten"}),dataIndex:"minutes",width:100,align:"right"}],E=[{title:t("workOrders.material",{defaultValue:"Material"}),dataIndex:"name",ellipsis:!0,render:(s,a)=>e.jsxs(e.Fragment,{children:[a.name,a.size?e.jsx($,{children:a.size}):null]})},{title:t("workOrders.quantity",{defaultValue:"Menge"}),dataIndex:"quantity",width:100,align:"right"}];return e.jsxs("div",{className:"portal-work-order-detail",style:M,children:[e.jsx(R,{type:"link",icon:e.jsx(B,{}),style:{paddingLeft:0,marginBottom:8},onClick:()=>j(N.PORTAL_WORK_ORDERS),children:t("workOrders.back",{defaultValue:"Zurück zur Ãbersicht"})}),e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:12,marginBottom:16},children:[e.jsx(m,{level:3,style:{margin:0},children:r.title}),e.jsx(x,{tone:K[r.status],style:{marginInlineEnd:0},children:t(`workOrders.status.${r.status}`,{defaultValue:r.status})})]}),r.end_date!=null?e.jsx("div",{style:{marginBottom:16},children:d(r.end_date).isBefore(d(),"day")?e.jsx(x,{tone:"neutral",children:t("workOrders.ended",{date:d(r.end_date).format(y),defaultValue:"Beendet {{date}}"})}):e.jsx(p,{type:"secondary",children:t("workOrders.endsAt",{date:d(r.end_date).format(y),defaultValue:"Läuft aus am {{date}}"})})}):null,e.jsxs(i,{column:1,size:"small",style:{marginBottom:24},children:[r.property_name?e.jsx(i.Item,{label:t("workOrders.property",{defaultValue:"Objekt"}),children:r.property_name}):null,e.jsx(i.Item,{label:t("workOrders.createdAt",{defaultValue:"Erfasst am"}),children:_(r.created_at,g)}),r.completed_at?e.jsx(i.Item,{label:t("workOrders.completedAt",{defaultValue:"Abgeschlossen am"}),children:_(r.completed_at,g)}):null,e.jsx(i.Item,{label:t("workOrders.netTotal",{defaultValue:"Netto gesamt"}),children:e.jsx(p,{strong:!0,children:k(r.net_total_cents)})})]}),e.jsx(m,{level:5,children:t("workOrders.positions",{defaultValue:"Abrechnungspositionen"})}),e.jsx(c,{...f,rowKey:(s,a)=>String(a),columns:v,dataSource:r.positions,style:{marginBottom:24}}),l&&(l.services.length>0||l.materials.length>0)?e.jsxs(e.Fragment,{children:[e.jsx(m,{level:5,children:t("workOrders.actuals",{defaultValue:"Erbrachte Leistungen"})}),l.services.length>0?e.jsx(c,{...f,rowKey:s=>s.service_key,style:{marginBottom:16},columns:V,dataSource:l.services}):null,l.materials.length>0?e.jsx(c,{...f,rowKey:s=>`${s.name}-${s.size??""}`,columns:E,dataSource:l.materials}):null]}):null]})};export{se 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.