import{d as H,u as J,q as Q,m as g,c as n,a as e,y as V,e as d,F as x,x as h,b as M,v as T,t as r,n as y,r as o,k as U,o as l}from"./index-Dox4jtA_.js";const W={class:"space-y-6"},X={class:"flex items-center justify-between"},Y={key:0,class:"card bg-yellow-50 dark:bg-yellow-900/20 border-yellow-200"},Z={class:"space-y-3"},ee={class:"font-medium"},te={class:"flex gap-2"},se=["onClick"],ae=["onClick"],ne={key:1,class:"text-center py-12 text-gray-500"},le={key:2,class:"card text-center py-12"},re={key:3,class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"},oe=["onClick"],ie={class:"flex items-start justify-between"},de={class:"text-xs text-gray-500"},ue={class:"font-semibold text-gray-900 dark:text-white"},ce={class:"mt-4 flex items-center gap-4 text-sm text-gray-500"},ve={key:4,class:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4"},ge={class:"bg-white dark:bg-gray-800 rounded-xl shadow-xl max-w-md w-full p-6"},me={class:"space-y-4"},be={key:0,class:"p-3 bg-red-50 text-red-600 rounded-lg text-sm"},xe={class:"mt-6 flex justify-end gap-3"},ye=["disabled"],pe={key:5,class:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4"},he={class:"bg-white dark:bg-gray-800 rounded-xl shadow-xl max-w-4xl w-full max-h-[90vh] overflow-hidden flex flex-col"},_e={class:"p-6 border-b dark:border-gray-700"},fe={class:"flex items-center justify-between"},ke={class:"text-xs text-gray-500"},we={class:"text-xl font-bold text-gray-900 dark:text-white"},Ce={class:"flex gap-4 mt-4"},Se={class:"p-6 overflow-y-auto flex-1"},$e={key:0},Ae={key:0,class:"space-y-3"},ze={class:"flex items-center justify-between"},De={class:"font-medium"},Fe={class:"text-sm text-gray-500"},je={key:1,class:"text-center text-gray-500 py-8"},Be={key:1},Ee={key:0,class:"space-y-3"},Pe={class:"flex items-center justify-between"},Le={class:"font-medium"},Ne={class:"text-sm text-gray-500"},Re={key:0,class:"text-sm font-medium text-green-600"},Ke={class:"flex items-center gap-2"},Oe=["onClick"],Ve=["onClick"],Me={key:1,class:"text-center text-gray-500 py-8"},Te={key:2},Ue={class:"grid grid-cols-3 gap-4 mb-6"},qe={class:"p-4 bg-yellow-50 dark:bg-yellow-900/20 rounded-lg text-center"},Ge={class:"text-2xl font-bold text-yellow-600"},Ie={class:"text-sm text-yellow-600"},He={class:"p-4 bg-green-50 dark:bg-green-900/20 rounded-lg text-center"},Je={class:"text-2xl font-bold text-green-600"},Qe={class:"text-sm text-green-600"},We={class:"p-4 bg-blue-50 dark:bg-blue-900/20 rounded-lg text-center"},Xe={class:"text-2xl font-bold text-blue-600"},Ye={class:"space-y-2"},Ze={class:"font-medium"},et={class:"text-gray-500 ml-2"},tt={class:"text-right"},st={class:"font-medium"},at={class:"text-sm text-gray-500"},rt=H({__name:"PartnershipsView",setup(nt){const B=J(),S=o(!0),$=o([]),u=o(null),p=o(!1),A=o(!1),b=o(""),_=o(""),f=o(!1),k=o(""),z=o(null),w=o([]),v=o(null),c=o("orders");Q(async()=>{await D()});async function D(){S.value=!0;try{const a=await g.get("/partnerships");$.value=a.data.partnerships}catch(a){console.error("Load partnerships failed:",a)}S.value=!1}async function q(){if(b.value){f.value=!0,k.value="";try{await g.post("/partnerships/invite",{subcontractor_slug:b.value,notes:_.value||void 0}),p.value=!1,b.value="",_.value="",await D()}catch(a){k.value=a instanceof Error?a.message:"Einladung fehlgeschlagen"}f.value=!1}}async function E(a,s){try{await g.post(`/partnerships/${a.id}/respond`,{accept:s}),await D()}catch(i){alert("Fehler: "+(i instanceof Error?i.message:"Unbekannt"))}}async function G(a){u.value=a,A.value=!0,c.value="orders";try{const[s,i,C]=await Promise.all([g.get(`/partnerships/${a.id}`),g.get(`/partnerships/${a.id}/timesheets`),g.get(`/partnerships/${a.id}/billing`)]);z.value=s.data,w.value=i.data.timesheets,v.value=C.data}catch(s){console.error("Load detail failed:",s)}}async function P(a,s){if(u.value)try{await g.post(`/partnerships/${u.value.id}/timesheets/${a.id}/review`,{approve:s,dispute_reason:s?void 0:prompt("Grund für Beanstandung:")});const i=await g.get(`/partnerships/${u.value.id}/timesheets`);w.value=i.data.timesheets}catch(i){alert("Fehler: "+(i instanceof Error?i.message:"Unbekannt"))}}const L=U(()=>$.value.filter(a=>a.status==="pending"&&a.my_role==="subcontractor")),N=U(()=>$.value.filter(a=>a.status==="active"));function I(a){return(a/100).toFixed(2).replace(".",",")+" €"}function R(a){return new Date(a).toLocaleDateString("de-DE")}function F(a){return{pending:"badge-warning",active:"badge-success",paused:"badge-secondary",terminated:"badge-danger",requested:"badge-primary",accepted:"badge-success",declined:"badge-danger",approved:"badge-success",disputed:"badge-danger"}[a]||"badge-secondary"}function j(a){return{pending:"Ausstehend",active:"Aktiv",paused:"Pausiert",terminated:"Beendet",requested:"Angefragt",accepted:"Angenommen",declined:"Abgelehnt",approved:"Genehmigt",disputed:"Beanstandet"}[a]||a}return(a,s)=>{var i,C;return l(),n("div",W,[e("div",X,[s[9]||(s[9]=e("div",null,[e("h1",{class:"text-2xl font-bold text-gray-900 dark:text-white"}," 🤝 Subunternehmer "),e("p",{class:"text-gray-500 dark:text-gray-400"}," Partnerschaften und Abrechnungen ")],-1)),V(B).isChef?(l(),n("button",{key:0,onClick:s[0]||(s[0]=t=>p.value=!0),class:"btn btn-primary"}," + Subunternehmer einladen ")):d("",!0)]),L.value.length>0?(l(),n("div",Y,[s[11]||(s[11]=e("h2",{class:"text-lg font-semibold text-yellow-800 dark:text-yellow-200 mb-4"}," 📬 Offene Einladungen ",-1)),e("div",Z,[(l(!0),n(x,null,h(L.value,t=>(l(),n("div",{key:t.id,class:"flex items-center justify-between p-4 bg-white dark:bg-gray-800 rounded-lg"},[e("div",null,[e("span",ee,r(t.contractor_name),1),s[10]||(s[10]=e("span",{class:"text-gray-500"}," möchte Sie als Subunternehmer",-1))]),e("div",te,[e("button",{onClick:m=>E(t,!0),class:"btn btn-success text-sm"}," Annehmen ",8,se),e("button",{onClick:m=>E(t,!1),class:"btn btn-danger text-sm"}," Ablehnen ",8,ae)])]))),128))])])):d("",!0),S.value?(l(),n("div",ne," Lädt... ")):N.value.length===0?(l(),n("div",le,[s[12]||(s[12]=e("span",{class:"text-4xl"},"🤝",-1)),s[13]||(s[13]=e("p",{class:"mt-4 text-gray-500"},"Noch keine aktiven Partnerschaften",-1)),V(B).isChef?(l(),n("button",{key:0,onClick:s[1]||(s[1]=t=>p.value=!0),class:"btn btn-primary mt-4"}," Subunternehmer einladen ")):d("",!0)])):(l(),n("div",re,[(l(!0),n(x,null,h(N.value,t=>(l(),n("div",{key:t.id,class:"card hover:shadow-lg transition-shadow cursor-pointer",onClick:m=>G(t)},[e("div",ie,[e("div",null,[e("span",de,r(t.my_role==="contractor"?"Subunternehmer":"Hauptunternehmer"),1),e("h3",ue,r(t.my_role==="contractor"?t.subcontractor_name:t.contractor_name),1)]),e("span",{class:y(["badge",F(t.status)])},r(j(t.status)),3)]),e("div",ce,[e("span",null,"📋 "+r(t.shared_orders_count)+" Aufträge",1),e("span",null,"💰 "+r(t.rates_count)+" Sätze",1)])],8,oe))),128))])),p.value?(l(),n("div",ve,[e("div",ge,[s[17]||(s[17]=e("h2",{class:"text-xl font-bold text-gray-900 dark:text-white mb-4"}," Subunternehmer einladen ",-1)),e("div",me,[e("div",null,[s[14]||(s[14]=e("label",{class:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"}," Organisation (Kürzel) ",-1)),M(e("input",{"onUpdate:modelValue":s[2]||(s[2]=t=>b.value=t),type:"text",class:"input",placeholder:"z.B. muster-security"},null,512),[[T,b.value]]),s[15]||(s[15]=e("p",{class:"mt-1 text-xs text-gray-500"}," Das Kürzel, mit dem sich die Organisation registriert hat ",-1))]),e("div",null,[s[16]||(s[16]=e("label",{class:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"}," Notizen (optional) ",-1)),M(e("textarea",{"onUpdate:modelValue":s[3]||(s[3]=t=>_.value=t),class:"input",rows:"2",placeholder:"z.B. Rahmenvertrag vom 01.01.2026"},null,512),[[T,_.value]])]),k.value?(l(),n("div",be,r(k.value),1)):d("",!0)]),e("div",xe,[e("button",{onClick:s[4]||(s[4]=t=>p.value=!1),class:"btn btn-secondary"}," Abbrechen "),e("button",{onClick:q,disabled:f.value||!b.value,class:"btn btn-primary"},r(f.value?"Lädt...":"Einladen"),9,ye)])])])):d("",!0),A.value&&u.value?(l(),n("div",pe,[e("div",he,[e("div",_e,[e("div",fe,[e("div",null,[e("span",ke,r(u.value.my_role==="contractor"?"Subunternehmer":"Hauptunternehmer"),1),e("h2",we,r(u.value.my_role==="contractor"?u.value.subcontractor_name:u.value.contractor_name),1)]),e("button",{onClick:s[5]||(s[5]=t=>A.value=!1),class:"text-gray-400 hover:text-gray-600 text-2xl"}," × ")]),e("div",Ce,[e("button",{onClick:s[6]||(s[6]=t=>c.value="orders"),class:y(["px-4 py-2 rounded-lg",c.value==="orders"?"bg-primary-100 text-primary-700":"text-gray-500"])}," 📋 Aufträge ",2),e("button",{onClick:s[7]||(s[7]=t=>c.value="timesheets"),class:y(["px-4 py-2 rounded-lg",c.value==="timesheets"?"bg-primary-100 text-primary-700":"text-gray-500"])}," ⏱️ Stundenzettel ",2),e("button",{onClick:s[8]||(s[8]=t=>c.value="billing"),class:y(["px-4 py-2 rounded-lg",c.value==="billing"?"bg-primary-100 text-primary-700":"text-gray-500"])}," 💰 Abrechnung ",2)])]),e("div",Se,[c.value==="orders"?(l(),n("div",$e,[(C=(i=z.value)==null?void 0:i.recentOrders)!=null&&C.length?(l(),n("div",Ae,[(l(!0),n(x,null,h(z.value.recentOrders,t=>(l(),n("div",{key:t.id,class:"p-4 bg-gray-50 dark:bg-gray-700 rounded-lg"},[e("div",ze,[e("div",null,[e("span",De,r(t.order_title),1),e("div",Fe,r(t.start_time?R(t.start_time):"Kein Datum"),1)]),e("span",{class:y(["badge",F(t.status)])},r(j(t.status)),3)])]))),128))])):(l(),n("div",je," Keine geteilten Aufträge "))])):d("",!0),c.value==="timesheets"?(l(),n("div",Be,[w.value.length?(l(),n("div",Ee,[(l(!0),n(x,null,h(w.value,t=>(l(),n("div",{key:t.id,class:"p-4 bg-gray-50 dark:bg-gray-700 rounded-lg"},[e("div",Pe,[e("div",null,[e("span",Le,r(t.worker_name),1),e("div",Ne,r(R(t.work_date))+" • "+r(t.hours_worked)+"h • "+r(t.order_title),1),t.calculated_amount_cents?(l(),n("div",Re,r(I(t.calculated_amount_cents)),1)):d("",!0)]),e("div",Ke,[e("span",{class:y(["badge",F(t.approval_status)])},r(j(t.approval_status)),3),u.value.my_role==="contractor"&&t.approval_status==="pending"?(l(),n(x,{key:0},[e("button",{onClick:m=>P(t,!0),class:"btn btn-success text-xs"},"✓",8,Oe),e("button",{onClick:m=>P(t,!1),class:"btn btn-danger text-xs"},"✗",8,Ve)],64)):d("",!0)])])]))),128))])):(l(),n("div",Me," Keine Stundenzettel "))])):d("",!0),c.value==="billing"&&v.value?(l(),n("div",Te,[e("div",Ue,[e("div",qe,[e("div",Ge,r(v.value.summary.pending.amount.toFixed(2))+" € ",1),e("div",Ie,r(v.value.summary.pending.count)+" ausstehend",1)]),e("div",He,[e("div",Je,r(v.value.summary.approved.amount.toFixed(2))+" € ",1),e("div",Qe,r(v.value.summary.approved.count)+" genehmigt",1)]),e("div",We,[e("div",Xe,r(v.value.summary.approved.hours.toFixed(1))+" h ",1),s[18]||(s[18]=e("div",{class:"text-sm text-blue-600"},"Gesamt-Stunden",-1))])]),s[19]||(s[19]=e("h3",{class:"font-semibold text-gray-900 dark:text-white mb-3"},"Nach Stundensatz",-1)),e("div",Ye,[(l(!0),n(x,null,h(v.value.byRate,t=>{var m,K,O;return l(),n("div",{key:t.rate_name,class:"flex items-center justify-between p-3 bg-gray-50 dark:bg-gray-700 rounded-lg"},[e("div",null,[e("span",Ze,r(t.rate_name||"Standard"),1),e("span",et,r((m=t.rate_amount)==null?void 0:m.toFixed(2))+" €/h",1)]),e("div",tt,[e("div",st,r((K=t.total_amount)==null?void 0:K.toFixed(2))+" €",1),e("div",at,r((O=t.total_hours)==null?void 0:O.toFixed(1))+"h",1)])])}),128))])])):d("",!0)])])])):d("",!0)])}}});export{rt as default};