const{PageHeader,Card,Button,StatusBadge,Dialog,TextField,DataTable}=window.RemedeStockDesignSystem_3e957a,Icon=window.REMEDE.Icon;function ApproveIssue(){const[a,n]=React.useState(null),[d,o]=React.useState(""),[r,i]=React.useState(null),[g,c]=React.useState(""),v=window.REMEDE.useSaveGuard(),{data:y,loading:x,error:u,reload:l}=window.REMEDE.useAsyncData(()=>window.REMEDE.getIssueRequests(),{initial:[],errorMessage:"โหลดคำขอเบิกไม่สำเร็จ"}),s=y.filter(e=>e.status==="pending"),m=y.filter(e=>e.status!=="pending");window.REMEDE.useLucide([s,m,x,u,a,d,r]);const w=e=>v(async()=>{o(e.id),n(null);try{await window.REMEDE.approveIssueRequest(e.id),n({tone:"success",text:`อนุมัติเบิกของ ${e.count} รายการเรียบร้อย ตัดสต๊อกแล้ว`}),await l()}catch(t){n({tone:"danger",text:t.message||"อนุมัติไม่สำเร็จ"})}finally{o("")}}),f=()=>v(async()=>{if(!r)return;const e=r;o(e.id),n(null),i(null);try{await window.REMEDE.rejectIssueRequest(e.id,g.trim()),c(""),n({tone:"success",text:"บันทึกการไม่อนุมัติแล้ว (ไม่ตัดสต๊อก)"}),await l()}catch(t){n({tone:"danger",text:t.message||"ดำเนินการไม่สำเร็จ"})}finally{o("")}}),p=React.createElement(PageHeader,{eyebrow:"หลังบ้าน · คลัง",title:"อนุมัติเบิก",description:"ตรวจนับและหยิบของตามคำขอเบิกจากหน้าบ้าน แล้วกดอนุมัติเพื่อตัดสต๊อก หรือไม่อนุมัติพร้อมเหตุผล",actions:React.createElement(Button,{variant:"ghost",iconLeft:React.createElement(Icon,{n:"rotate-ccw",s:16}),onClick:l},"รีเฟรช")});return x?React.createElement("div",{style:{maxWidth:"var(--content-max)"}},p,React.createElement(Card,{padding:"md",style:{marginTop:"var(--space-7)"}},React.createElement(window.REMEDE.LoadingState,null))):u?React.createElement("div",{style:{maxWidth:"var(--content-max)"}},p,React.createElement(Card,{padding:"md",style:{marginTop:"var(--space-7)"}},React.createElement(window.REMEDE.ErrorState,{message:u,onRetry:l}))):React.createElement("div",{style:{maxWidth:"var(--content-max)"}},p,a?React.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:"var(--space-5)",padding:"10px 14px",background:a.tone==="danger"?"var(--danger-50)":"var(--success-50)",border:`1px solid ${a.tone==="danger"?"var(--danger-100)":"var(--success-100)"}`,borderRadius:"var(--radius-md)",color:a.tone==="danger"?"var(--danger-700)":"var(--success-700)",fontSize:"var(--text-sm)"}},React.createElement(Icon,{n:a.tone==="danger"?"alert-circle":"check-circle",s:16}),a.text):null,React.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,margin:"var(--space-7) 0 var(--space-4)"}},React.createElement("h3",{style:{fontSize:"var(--text-lg)",fontWeight:600}},"คำขอที่รออนุมัติ"),React.createElement(StatusBadge,{tone:s.length?"warning":"success",dot:!1},s.length," รายการ")),s.length===0?React.createElement(Card,{padding:"md"},React.createElement("div",{style:{padding:"28px 20px",textAlign:"center",color:"var(--text-subtle)",fontSize:"var(--text-sm)"}},"ไม่มีคำขอรออนุมัติ")):React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-5)"}},s.map(e=>React.createElement(Card,{key:e.id,padding:"none",style:{overflow:"hidden"}},React.createElement("div",{style:{padding:"14px 20px",borderBottom:"1px solid var(--border-subtle)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},React.createElement("div",null,React.createElement("div",{style:{fontWeight:600,color:"var(--text-strong)"}},"ผู้ขอเบิก: ",e.requester),React.createElement("div",{style:{fontSize:"var(--text-xs)",color:"var(--text-subtle)",marginTop:2}},e.date," · ",e.count," รายการ · รวม ",e.totalQty," หน่วย")),React.createElement(StatusBadge,{tone:"warning",size:"sm"},"รออนุมัติ")),e.purpose&&e.purpose!=="—"?React.createElement("div",{style:{padding:"10px 20px 0",fontSize:"var(--text-sm)",color:"var(--text-body)"}},React.createElement("span",{style:{color:"var(--text-subtle)"}},"วัตถุประสงค์:")," ",e.purpose):null,React.createElement("div",{style:{padding:"10px 12px 4px"}},React.createElement(DataTable,{columns:[{key:"name",header:"รายการ",wrap:!0},{key:"qty",header:"จำนวนที่ขอ",align:"right",mono:!0,render:t=>`${t.qty} ${t.unit}`}],rows:e.items,empty:"—"})),React.createElement("div",{style:{padding:"12px 20px",background:"var(--neutral-50)",borderTop:"1px solid var(--border-subtle)",display:"flex",gap:10,justifyContent:"flex-end"}},React.createElement(Button,{variant:"ghost",disabled:d===e.id,onClick:()=>{c(""),i(e)},iconLeft:React.createElement(Icon,{n:"x",s:16})},"ไม่อนุมัติ"),React.createElement(Button,{disabled:d===e.id,onClick:()=>w(e),iconLeft:React.createElement(Icon,{n:"check",s:16})},d===e.id?"กำลังทำ…":"อนุมัติเบิก"))))),React.createElement(Card,{padding:"md",style:{marginTop:"var(--space-7)"}},React.createElement("h3",{style:{fontSize:"var(--text-lg)",fontWeight:600,marginBottom:14}},"ประวัติคำขอที่ตัดสินแล้ว"),React.createElement(DataTable,{columns:[{key:"date",header:"วันที่ขอ"},{key:"requester",header:"ผู้ขอเบิก"},{key:"items",header:"รายการ",wrap:!0,render:e=>e.items.map(t=>`${t.name} ×${t.qty}`).join(", ")},{key:"status",header:"สถานะ",render:e=>{const t=window.REMEDE.requestStatus(e.status);return React.createElement(StatusBadge,{tone:t.tone,size:"sm"},t.label)}},{key:"decidedBy",header:"ผู้ตัดสิน",render:e=>e.decidedBy||"—"},{key:"note",header:"เหตุผล (ถ้าไม่อนุมัติ)",wrap:!0,render:e=>e.note||"—"}],rows:m,empty:"ยังไม่มีประวัติ"})),React.createElement(Dialog,{open:!!r,onClose:()=>i(null),tone:"warning",title:"ไม่อนุมัติคำขอเบิก",description:"ระบุเหตุผล (เช่น ของไม่พอ / ขอซ้ำ) — ระบบจะไม่ตัดสต๊อก",footer:React.createElement(React.Fragment,null,React.createElement(Button,{variant:"ghost",onClick:()=>i(null)},"ยกเลิก"),React.createElement(Button,{variant:"secondary",onClick:f,iconLeft:React.createElement(Icon,{n:"x",s:16})},"ยืนยันไม่อนุมัติ"))},React.createElement(TextField,{label:"เหตุผล",value:g,onChange:e=>c(e.target.value),placeholder:"เช่น สต๊อกไม่พอ รอรับเข้าก่อน"})))}window.ApproveIssue=ApproveIssue;
