1import{j as e}from"./vendor-data-Z5doMMu-.js";import{b as B,r}from"./vendor-react-zNM0AU50.js";import{aD as L,c as $,T as q,aa as K,ae as _,a7 as u}from"./vendor-ui-CW5bJ11U.js";import{u as F}from"./index-D1K3lVhu.js";import{M as H}from"./MemberSearchInput-B4_Iy3N2.js";import{o as V}from"./offeringService-Cuo8E004.js";import{f as z}from"./financeCloseService-C1M9uxKC.js";import{r as A,d as G,P as J}from"./financeConstants-CXKUiVP8.js";import{f as Q}from"./financeSettingsService-Gao7wv_9.js";import"./vendor-firebase-Da9KY1q_.js";import"./vendor-charts-08G1rM8P.js";let U=1;function b(m){return{key:U++,member:null,isAnonymous:!1,type:m,amount:0,envelopeNumber:"",memo:""}}function ce(){const m=B(),{user:l}=F(),d=(l==null?void 0:l.churchId)||"seodoon-church",[x,T]=r.useState(new Date().toISOString().split("T")[0]),[j,E]=r.useState("주ì¼1ë¶"),[v,D]=r.useState("cash"),[p,R]=r.useState(()=>A()),[h,N]=r.useState("tithe"),[g,y]=r.useState([b("tithe")]),[w,f]=r.useState(!1);r.useEffect(()=>{Q.getSettings(d).then(t=>{const a=A(t.offeringTypes);R(a),a.length>0&&N(a[0].value)}).catch(()=>{})},[d]);const M=t=>{var a;return((a=p.find(s=>s.value===t))==null?void 0:a.label)||t},S=()=>y(t=>[...t,b(h)]),o=(t,a)=>{y(s=>s.map(i=>i.key===t?{...i,...a}:i))},O=t=>{y(a=>a.length===1?[b(h)]:a.filter(s=>s.key!==t))},c=g.filter(t=>t.amount>0&&(t.isAnonymous||t.member)),I=c.reduce((t,a)=>t+a.amount,0),P=(t,a)=>{t.key==="Enter"&&(t.preventDefault(),a&&S())},Y=async()=>{if(c.length===0){u.error("ì
ë ¥ë íê¸ì´ ììµëë¤. êµì¸/무ëª
ê³¼ ê¸ì¡ì íì¸íì¸ì.");return}const t=g.filter(n=>n.amount>0&&!n.isAnonymous&&!n.member);if(t.length>0){u.error(`íê¸ìê° ì§ì ëì§ ìì íì´ ${t.length}ê±´ ììµëë¤. 무ëª
ì²´í¬ ëë êµì¸ì ì ííì¸ì.`);return}const a=String(new Date(x).getFullYear()),s=(l==null?void 0:l.uid)||"",i=c.map(n=>{var k,C;return{churchId:d,date:x,fiscalYear:a,amount:n.amount,type:n.type,typeName:M(n.type),memberId:n.isAnonymous||(k=n.member)==null?void 0:k.id,memberName:n.isAnonymous?"무ëª
":(C=n.member)==null?void 0:C.name,isAnonymous:n.isAnonymous,envelopeNumber:n.envelopeNumber||void 0,paymentMethod:v,serviceType:j,status:"pending",receiptRequested:!1,receiptIssued:!1,memo:n.memo||"",createdBy:s}});try{if(f(!0),await z.isMonthClosed(d,x)){u.error("ë§ê°ë ìì
ëë¤. í´ë¹ ììë íê¸ì ë±ë¡í ì ììµëë¤."),f(!1);return}await V.createOfferingsBatch(d,i),u.success(`íê¸ ${i.length}ê±´ì´ ì¼ê´ ë±ë¡ëììµëë¤`),m("/finance/offerings")}catch(n){console.error("íê¸ ì¼ê´ ë±ë¡ ì¤í¨:",n),u.error("íê¸ ì¼ê´ ë±ë¡ì ì¤í¨íìµëë¤")}finally{f(!1)}};return e.jsxs("div",{className:"p-6 max-w-6xl mx-auto",children:[e.jsxs("div",{className:"flex items-center gap-4 mb-6",children:[e.jsx("button",{onClick:()=>m("/finance/offerings"),className:"p-2 hover:bg-gray-100 rounded-lg transition-colors",children:e.jsx(L,{className:"w-5 h-5"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"íê¸ ì¼ê´ì
ë ¥"}),e.jsx("p",{className:"text-sm text-gray-500 mt-1",children:"ì£¼ì¼ íê¸ì í íë©´ìì ì¬ë¬ ê±´ ë¹ ë¥´ê² ë±ë¡í©ëë¤. ê¸ì¡ì¹¸ìì Enterë¡ íì´ ì¶ê°ë©ëë¤."})]})]}),e.jsxs("div",{className:"bg-white border border-gray-200 rounded-xl p-4 mb-4 grid grid-cols-2 md:grid-cols-4 gap-3",children:[e.jsxs("div",{children:[e.jsxs("label",{className:"flex items-center gap-1.5 text-xs font-medium text-gray-600 mb-1",children:[e.jsx($,{className:"w-3.5 h-3.5"})," ë ì§"]}),e.jsx("input",{type:"date",value:x,onChange:t=>T(t.target.value),className:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-xs font-medium text-gray-600 mb-1",children:"ìë°°"}),e.jsx("select",{value:j,onChange:t=>E(t.target.value),className:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500",children:G.map(t=>e.jsx("option",{value:t,children:t},t))})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-xs font-medium text-gray-600 mb-1",children:"ê²°ì ë°©ë²"}
1),e.jsx("select",{value:v,onChange:t=>D(t.target.value),className:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500",children:J.map(t=>e.jsx("option",{value:t.value,children:t.label},t.value))})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-xs font-medium text-gray-600 mb-1",children:"기본 íê¸ì í (ì í)"}),e.jsx("select",{value:h,onChange:t=>N(t.target.value),className:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500",children:p.map(t=>e.jsx("option",{value:t.value,children:t.label},t.value))})]})]}),e.jsxs("div",{className:"bg-white border border-gray-200 rounded-xl overflow-hidden",children:[e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{className:"bg-gray-50 text-gray-500 text-xs",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left px-3 py-2 font-medium w-10",children:"#"}),e.jsx("th",{className:"text-left px-3 py-2 font-medium",children:"íê¸ì"}),e.jsx("th",{className:"text-center px-3 py-2 font-medium w-16",children:"무ëª
"}),e.jsx("th",{className:"text-left px-3 py-2 font-medium w-36",children:"íê¸ì í"}),e.jsx("th",{className:"text-right px-3 py-2 font-medium w-40",children:"ê¸ì¡(ì)"}),e.jsx("th",{className:"text-left px-3 py-2 font-medium w-28",children:"ë´í¬ë²í¸"}),e.jsx("th",{className:"text-left px-3 py-2 font-medium",children:"ë©ëª¨"}),e.jsx("th",{className:"w-10"})]})}),e.jsx("tbody",{className:"divide-y divide-gray-100",children:g.map((t,a)=>e.jsxs("tr",{className:"hover:bg-gray-50/60",children:[e.jsx("td",{className:"px-3 py-2 text-gray-400",children:a+1}),e.jsx("td",{className:"px-3 py-2 min-w-[180px]",children:t.isAnonymous?e.jsx("span",{className:"text-gray-400 text-sm",children:"무ëª
"}):e.jsx(H,{value:t.member,onChange:s=>o(t.key,{member:s}),placeholder:"ì´ë¦/ì í ê²ì"})}),e.jsx("td",{className:"px-3 py-2 text-center",children:e.jsx("input",{type:"checkbox",checked:t.isAnonymous,onChange:s=>o(t.key,{isAnonymous:s.target.checked,member:null}),className:"rounded"})}),e.jsx("td",{className:"px-3 py-2",children:e.jsx("select",{value:t.type,onChange:s=>o(t.key,{type:s.target.value}),className:"w-full border border-gray-300 rounded-lg px-2 py-1.5 text-sm focus:ring-2 focus:ring-blue-500",children:p.map(s=>e.jsx("option",{value:s.value,children:s.label},s.value))})}),e.jsx("td",{className:"px-3 py-2",children:e.jsx("input",{type:"text",inputMode:"numeric",value:t.amount?t.amount.toLocaleString():"",onChange:s=>o(t.key,{amount:Number(s.target.value.replace(/[^0-9]/g,""))||0}),onKeyDown:s=>P(s,a===g.length-1),placeholder:"0",className:"w-full text-right border border-gray-300 rounded-lg px-2 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 tabular-nums"})}),e.jsx("td",{className:"px-3 py-2",children:e.jsx("input",{type:"text",value:t.envelopeNumber,onChange:s=>o(t.key,{envelopeNumber:s.target.value}),className:"w-full border border-gray-300 rounded-lg px-2 py-1.5 text-sm focus:ring-2 focus:ring-blue-500"})}),e.jsx("td",{className:"px-3 py-2",children:e.jsx("input",{type:"text",value:t.memo,onChange:s=>o(t.key,{memo:s.target.value}),className:"w-full border border-gray-300 rounded-lg px-2 py-1.5 text-sm focus:ring-2 focus:ring-blue-500"})}),e.jsx("td",{className:"px-3 py-2 text-center",children:e.jsx("button",{onClick:()=>O(t.key),className:"text-gray-300 hover:text-rose-500",children:e.jsx(q,{className:"w-4 h-4"})})})]},t.key))}),e.jsx("tfoot",{className:"bg-gray-50 border-t border-gray-200",children:e.jsxs("tr",{children:[e.jsxs("td",{colSpan:4,className:"px-3 py-2.5 text-right text-gray-500",children:["ì í¨ ",c.length,"ê±´ í©ê³"]}),e.jsxs("td",{className:"px-3 py-2.5 text-right font-bold text-gray-900 tabular-nums",children:[I.toLocaleString(),"ì"]}),e.jsx("td",{colSpan:3})]})})]}),e.jsx("div",{className:"p-3 border-t border-gray-100",children:e.jsxs("button",{onClick:S,className:"flex items-center gap-1.5 text-sm text-gray-600 hover:text-blue-600 px-3 py-1.5 rounded-lg hover:bg-gray-50",children:[e.jsx(K,{className:"w-4 h-4"})," í ì¶ê°"]})})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2 mt-4",children:[e.jsx("button",{onClick:()=>m("/finance/offerings"),className:"px-4 py-2.5 text-sm text-gray-600 hover:bg-gray-100 rounded-lg",children:"ì·¨ì"}),e.jsxs("button",{onClick:Y,disabled:w||c.length===0,className:"flex items-center gap-2 bg-emerald-600 hover:bg-emerald-700 disabled:bg-gray-300 text-white font-semibold px-6 py-2.5 rounded-lg transition-colors",children:[e.jsx(_,{className:"w-4 h-4"}),w?"ì ì¥ ì¤...":`${c.length}ê±´ ì¼ê´ ì ì¥`]})]})]})}export{ce as OfferingBulkPage,ce 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.