1import{_ as I}from"./BmJPZ_Bp.js";import{_ as N}from"./CNzqBcff.js";import{e as A,f as K,h as O,i as R,j as $,c,a as s,k as o,t as p,l as _,D as E,w as u,b as J,p as L,q as r,o as m,x as q,d as z,z as F,n as T,v as Z,y as G,B as H}from"./BnI3597d.js";import{u as Q}from"./4bw899IF.js";const W={class:"animate-fade-in space-y-4"},X={key:0,class:"text-sm text-red-600"},Y={class:"whitespace-nowrap"},ee=["href"],ae={key:1,class:"text-slate-400"},te={key:0,class:"sm:col-span-2"},se=["disabled"],ue=A({__name:"pembayaran",setup(oe){const S={pending:"bg-amber-100 text-amber-700",approved:"bg-green-100 text-green-700",rejected:"bg-red-100 text-red-700"},{token:B,user:x,apiFetch:f,fetchMe:D}=K(),{activeSchoolId:n}=Q(),g=O(),U=r([]),w=r([]),M=r(!0),y=r(!1),i=r(""),b=r(null),l=H({amount:0,paymentMethod:"transfer_manual"}),d=r(!1),P=[{key:"created_at",label:"Tanggal"},{key:"package_code",label:"Paket"},{key:"amount",label:"Jumlah"},{key:"payment_method",label:"Metode"},{key:"status",label:"Status"},{key:"proofDownloadUrl",label:"Bukti"}];function v(a){const e=a;return e?.data?.error?.message??e?.message??"Terjadi kesalahan, silakan coba lagi"}async function k(){if(!n.value)return;const a=await f(`/me/schools/${n.value}/payments`);w.value=a.payments}async function V(){i.value="",y.value=!0;try{let a;const e=b.value?.files?.[0];if(l.paymentMethod==="transfer_manual"){if(!e)throw new Error("Bukti transfer wajib diupload");const h=await f("/me/uploads/presign",{method:"POST",body:{fileName:e.name,contentType:e.type||"application/octet-stream",category:"payment-proofs",schoolId:n.value}});await $fetch(h.uploadUrl,{method:"PUT",body:e,headers:{"Content-Type":e.type||"application/octet-stream"}}),a=h.key}await f(`/me/schools/${n.value}/payments`,{method:"POST",body:{amount:l.amount,paymentMethod:l.paymentMethod,proofKey:a}}),l.amount=0,b.value&&(b.value.value=""),d.value=!1,await k()}catch(a){i.value=v(a)}finally{y.value=!1}}function C(a){return new Date(a).toLocaleString("id-ID",{dateStyle:"medium",timeStyle:"short",timeZone:"Asia/Jakarta"})}return R(n,()=>k().catch(a=>i.value=v(a))),$(async()=>{if(!B.value)return g.push("/login");try{if(x.value||await D(),x.value?.userType!=="customer"){g.push("/");return}const a=await f("/me/schools");U.value=a.schools,a.schools.some(e=>e.id===n.value)||(n.value=a.schools[0]?.id??""),await k()}catch(a){i.value=v(a)}finally{M.value=!1}}),(a,e)=>{const h=I,j=N;return m(),c("div",W,[e[6]||(e[6]=s("div",{class:"card"},[s("div",{class:"flex flex-wrap items-center justify-between gap-3"},[s("div",null,[s("h1",{class:"text-xl font-bold text-slate-900 dark:text-slate-50"},"Pembayaran"),s("p",{class:"mt-1 text-sm text-slate-500 dark:text-slate-400"},"Transfer manual diverifikasi manual oleh saas owner.")])])],-1)),o(i)?(m(),c("p",X,p(o(i)),1)):_("",!0),o(M)?_("",!0):(m(),E(h,{key:1,columns:P,rows:o(w),"search-keys":["package_code","payment_method","status"],"search-placeholder":"Cari paket, metode, atau status...","empty-text":"Belum ada pembayaran."},{actions:u(()=>[s("button",{type:"button",class:"btn-primary btn-shine text-sm",onClick:e[0]||(e[0]=t=>d.value=!0)},"+ Kirim Bukti Pembayaran")]),"cell-created_at":u(({row:t})=>[s("span",Y,p(C(t.created_at)),1)]),"cell-amount":u(({row:t})=>[z("Rp"+p(t.amount),1)]),"cell-status":u(({row:t})=>[s("span",{class:q(["rounded-full px-2 py-0.5 text-xs",S[t.status]])},p(t.status),3)]),"cell-proofDownloadUrl":u(({row:t})=>[t.proofDownloadUrl?(m(),c("a",{key:0,href:t.proofDownloadUrl,target:"_blank",class:"text-primary-600 hover:underline"},"Lihat",8,ee)):(m(),c("span",ae,"-"))]),_:1},8,["rows"])),J(j,{modelValue:o(d),"onUpdate:modelValue":e[3]||(e[3]=t=>L(d)?d.value=t:null),title:"Kirim Bukti Pembayaran",subtitle:"Transfer manual diverifikasi manual oleh saas owner."},{default:u(()=>[s("form",{class:"grid grid-cols-1 gap-3 sm:grid-cols-2",onSubmit:F(V,["prevent"])},[T(s("input",{"onUpdate:modelValue":e[1]||(e[1]=t=>o(l).amount=t),type:"number",min:"1",placeholder:"Jumlah transfer (Rp)",required:"",class:"rounded-lg border border-slate-300 px-3 py-2 text-sm dark:border-slate-700 dark:bg-slate-800"},null,512),[[Z,o(l).amount,void 0,{number:!0}]]),T(s("select",{"onUpdate:modelValue":e[2]||(e[2]=t=>o(l).paymentMethod=t),class:"rounded-lg border border-slate-300 px-3 py-2 text-sm dark:border-slate-700 dark:bg-slate-800"},[...e[4]||(e[4]=[s("option",{value:"transfer_manual"},"Transfer Manual",-1),s("option",{value:"doku"},"DOKU (belum terhubung â skema saja)",-1)])],512),[[G,o(l).paymentMethod]]),o(l).paymentMethod==="transfer_manual"?(m(),c("div",te,[e[5]||
1(e[5]=s("label",{class:"text-sm text-slate-500"},"Bukti Transfer",-1)),s("input",{ref_key:"fileInput",ref:b,type:"file",accept:"image/*,application/pdf",class:"mt-1 block w-full text-sm"},null,512)])):_("",!0),s("button",{type:"submit",class:"btn-primary sm:col-span-2",disabled:o(y)},p(o(y)?"Mengirim...":"Kirim Bukti Pembayaran"),9,se)],32)]),_:1},8,["modelValue"])])}}});export{ue 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.