1import{r as s,ad as u}from"./vendor-B2mwFaEh.js";import{F as X,z as fe,m as Y,x as he,r as be,C as Ne}from"./firebase-BEuJf_if.js";import{P as ye,S as ge,a as we,b as Ce}from"./SupplierSearch-DRt_dsRW.js";import{P as Se}from"./ProductSalesHistoryModal-BqDqfN8F.js";import{a4 as Re,X as je,aC as ke}from"./icons-od6ehn-l.js";import"./excel-libs-DENYFglI.js";import"./index-3ztlLpng.js";import"./pdf-libs-Pu_J_WX0.js";import"./lotExpiryPolicy-BFoFfUpN.js";import"./postgrestIn-CzsSh00X.js";const K=()=>{const i=new Date(Date.now()+324e5);return`${i.getFullYear()}-${String(i.getMonth()+1).padStart(2,"0")}-${String(i.getDate()).padStart(2,"0")}`},Oe=({slipToEdit:r,onClose:i,db:N,companyId:y,products:R,inventory:V,warehouses:x,customers:g,purchases:Z,salesData:U,quotes:E,T:o,formatCurrency:w,logSystemAction:m,currentUser:C,userName:P})=>{const[p,$]=s.useState(K()),[j,Q]=s.useState(""),[S,_]=s.useState(null),[k,O]=s.useState(x?.[0]?.id||""),[F,z]=s.useState("æå£²ã"),[H,W]=s.useState(""),[f,h]=s.useState([]),[I,v]=s.useState({productCode:"",unitQty:"",qty:"",unitCost:"",totalAmount:0,taxRate:.1}),J=s.useMemo(()=>r?.writerName?r.writerName:C?.displayName||P||C?.email||"Unknown",[r,C,P]);s.useEffect(()=>{if(r){$(r.expectedDate||K()),Q(r.supplierId||"");const e=g.find(a=>a.id===r.supplierId);e&&_(e),O(r.warehouseId||x?.[0]?.id||""),z(r.slipType||"æå£²ã");const t=r.remarks?.replace("[ìì½ì¬ì
] ","")||"";W(t);const n=(r.items||[]).map(a=>({...a,taxRate:a.taxRate?Number(a.taxRate):.1}));h(n)}},[r,g,x]);const T=s.useRef(null),ee=s.useRef(null),te=s.useRef(null),ae=s.useRef(null),se=s.useRef(null),ne={inputRef:T,dateRef:ee,slipTypeRef:te,warehouseRef:ae,remarksRef:se},[D,L]=s.useState({isOpen:!1,product:null}),re=s.useCallback(e=>{if(!e)return;const t=R.find(n=>n.code===e);t&&L({isOpen:!0,product:t})},[R]),{subTotal:B,tax8:q,tax10:A,finalTotal:G}=s.useMemo(()=>{let e=0,t=0;f.forEach(c=>{const d=Number(c.totalAmount)||0,b=Number(c.taxRate)||.1;Math.abs(b-.08)<.001?e+=d:t+=d});const n=Math.round(e*.08),a=Math.round(t*.1),l=e+t;return{subTotal:l,tax8:n,tax10:a,finalTotal:l+n+a}},[f]),M=s.useCallback(e=>e?o(e.name_kr||e.name,e.name_jp||e.name)||e.name:"",[o]),oe=s.useCallback((e,t,n)=>{h(a=>{const l=[...a],c={...l[e],[t]:n};if(t==="qty"||t==="unitQty"||t==="unitCost"){const d=Number(c.unitQty??c.qty??0),b=Number(c.unitCost??0);c.totalAmount=Math.round(d*b)}return l[e]=c,l})},[]),le=s.useCallback((e,t)=>{t&&h(n=>{const a=[...n],l=Number(t.unitCost||t.movingAverageCost||t.price||0),c=Number(a[e].unitQty??a[e].qty??1),d=t.tax_rate??t.taxRate??.1,b=Number(d)===8||Number(d)===.08?.08:.1;return a[e]={...a[e],productCode:t.code||t.id,unitCost:l,totalAmount:Math.round(c*l),taxRate:b},a})},[]),ue=s.useCallback((e,t)=>{v(n=>{const a={...n,[e]:t};
1if(e==="qty"||e==="unitQty"||e==="unitCost"){const l=Number(a.unitQty??a.qty??0),c=Number(a.unitCost??0);a.totalAmount=Math.round(l*c)}return a})},[]),ce=s.useCallback(e=>{e&&v(t=>{const n=Number(e.unitCost||e.movingAverageCost||e.price||0),a=Number(t.unitQty??t.qty??1),l=e.tax_rate??e.taxRate??.1,c=Number(l)===8||Number(l)===.08?.08:.1;return{...t,productCode:e.code||e.id,unitCost:n,unitQty:a,qty:a,totalAmount:Math.round(a*n),taxRate:c}})},[]),ie=s.useCallback(e=>{const t=e&&e.productCode?e:I;!t||!t.productCode||(h(n=>[...n,t]),v({productCode:"",unitQty:"",qty:"",unitCost:"",totalAmount:0,taxRate:.1}))},[I]),de=s.useCallback(e=>{h(t=>t.filter((n,a)=>a!==e))},[]),me=async()=>{if(!p||!j&&!S?.id||f.length===0){alert(o("íì ì ë³´(ì
ê³ ìì ì¼, ê±°ëì², ìí)를 모ë ì
ë ¥í´ì£¼ì¸ì.","å¿
é æ
å ±ããã¹ã¦å
¥åãã¦ãã ããã"));return}try{const e=j||S?.id,t=g.find(a=>a.id===e)||S,n={expectedDate:p,status:"PENDING",supplierId:e,supplierName:t?.name||"",supplier:t?.name_kr||t?.name||"",supplierJp:t?.name_jp||"",warehouseId:k,slipType:F,remarks:`[ìì½ì¬ì
] ${H}`,items:f.map(a=>{const l=Number(a.unitQty??a.qty??0);return{productCode:a.productCode,qty:l,unitQty:l,unitCost:Number(a.unitCost),totalAmount:Number(a.totalAmount),taxRate:Number(a.taxRate)||.1}}),subTotal:Number(B),tax8:Number(q),tax10:Number(A),taxTotal:Number(q+A),finalTotal:Number(G),updatedAt:X()};r?.id?(await fe(Y(N,`companies/${y}/scheduled_purchases`,r.id),n),m&&m("UPDATE",`ìì½ ì¬ì
ìì : ${t?.name} (${p})`),alert(o("ìì½ ë´ì©ì´ ìì ëììµëë¤.","äºç´å
容ãä¿®æ£ããã¾ããã"))):(n.createdAt=X(),n.createdBy=C?.uid||"system",n.writerName=J,await he(be(N,`companies/${y}/scheduled_purchases`),n),m&&m("CREATE",`ìì½ ì¬ì
ìì±: ${t?.name} (${p})`),alert(o("ì±ê³µì ì¼ë¡ ìì½ëììµëë¤.","äºç´ãå®äºãã¾ããã"))),i()}catch(e){console.error("Save error:",e),alert("ì ì¥ ì¤ ì¤ë¥ê° ë°ìíìµëë¤.")}},pe=async()=>{if(r?.id&&window.confirm(o("ì´ ìì½ì ì·¨ì(ìì )íìê² ìµëê¹?","ãã®äºç´ããã£ã³ã»ã«(åé¤)ãã¾ããï¼")))try{await Ne(Y(N,`companies/${y}/scheduled_purchases`,r.id)),m&&m("DELETE",`ìì½ ì¬ì
ì·¨ì: ${r.supplierName} (${r.expectedDate})`),alert(o("ìì½ì´ ì·¨ìëììµëë¤.","äºç´ããã£ã³ã»ã«ããã¾ããã")),i()}catch(e){console.error("Delete error:",e),alert("ìì ì¤ ì¤ë¥ê° ë°ìíìµëë¤.")}},xe=[{key:"F2",label:r?o("ìì½ ìì (F2)","äºç´ä¿®æ£ (F2)"):o("ìì½ ì ì¥ (F2)","äºç´ä¿å (F2)"),handler:me,color:"bg-indigo-600 hover:bg-indigo-700",primary:!0},...r?[{key:"Delete",label:o("ìì½ ì·¨ì","äºç´ãã£ã³ã»ã«"),handler:pe,color:"bg-red-500 hover:bg-red-600"}]:[],{key:"Escape",label:o("ë«ê¸° (Esc)","éãã (Esc)"),handler:i,color:"bg-gray-500 hover:bg-gray-600"}];return u.jsx("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/60 backdrop-blur-sm p-4",children:u.jsxs("div",{className:"bg-white rounded-lg shadow-xl w-full max-w-6xl h-[90vh] flex flex-col overflow-hidden",children:[u.jsxs("div",{className:"flex justify-between items-center p-4 border-b bg-indigo-50 rounded-t-lg flex-none",children:[u.jsxs("h2",{className:"text-lg font-bold text-indigo-800 flex items-center gap-2",children:[u.jsx(Re,{size:20}),r?o("컨í
ì´ë ì
ê³ / ìì½ ìì ","ã³ã³ããå
¥è· / äºç´ä¿®æ£"):o("컨í
ì´ë ì
ê³ / ìì½ ì¬ì
ë±ë¡","ã³ã³ããå
¥è· / äºç´ä»å
¥ç»é²")]}),u.jsx("button",{onClick:i,className:"text-gray-500 hover:text-red-500 transition-colors",children:u.jsx(je,{size:24})})]}),u.jsxs("div",{className:"bg-indigo-100 p-3 text-sm text-indigo-800 flex items-start gap-2 border-b border-indigo-200 flex-none",children:[u.jsx(ke,{size:18,className:"mt-0.5 flex-shrink-0"}),u.jsxs("p",{children:[o("ì´ê³³ì ì
ë ¥í ë´ì©ì ","ããã«å
¥åããå
容㯠"),u.jsx("strong",{className:"text-red-600 underline decoration-red-400 decoration-2 underline-offset-2",children:p}),o(" ìì (00:00)ì ìëì¼ë¡ ì¬ê³ ê° ì¦ê°íê³ ìì¤í
ìê°(unitCost)ê° ê°±ì ë©ëë¤."," ã®æ·±å¤ã«èªåçã«å¨åº«ãå¢å ããã·ã¹ãã å価(unitCost)ãæ´æ°ããã¾ãã")]})]}),u.jsx(ye,{supplierId:j,setSupplierId:Q,selectedSupplier:S,setSelectedSupplier:_,purchaseDate:p,setPurchaseDate:$,slipType:F,setSlipType:z,warehouseId:k,setWarehouseId:O,warehouses:x,customers:g,remarks:
1H,setRemarks:W,SupplierSearchComponent:ge,refs:ne,writerName:J,T:o,getName:M,formatCurrency:w,slipTypeOptions:[{value:"æå£²ã",label:o("0. ì¸ì","0. æè²·ã")},{value:"ç¾é",label:o("1. íê¸","1. ç¾é")}]}),u.jsx("div",{className:"flex-grow p-2 overflow-hidden flex flex-col bg-gray-100",children:u.jsx(we,{items:f,products:R,inventory:V,selectedWarehouseId:k,warehouses:x,newItem:I,onNewItemChange:ue,onNewProductSelect:ce,onAddNewItem:ie,handleItemChange:oe,handleProductSelect:le,handleRemoveItem:de,onShowHistory:re,T:o,getName:M,formatCurrency:w,setLastFocused:()=>{}})}),u.jsx("div",{className:"flex-none bg-white",children:u.jsx(Ce,{subTotal:B,tax8:q,tax10:A,finalTotal:G,formatCurrency:w,T:o,actions:xe})}),D.isOpen&&u.jsx(Se,{isOpen:D.isOpen,onClose:()=>L({isOpen:!1,product:null}),product:D.product,allSales:U,allQuotes:E,allPurchases:Z,customer:null,db:N,companyId:y,T:o,getName:M,formatCurrency:w})]})})};export{Oe 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.