2 lines
14 KiB
JavaScript
2 lines
14 KiB
JavaScript
import{r as p,j as s}from"./ui-Z445SNHD.js";import{P as de}from"./page-template-CDooloYn.js";import{u as ce,c as ue,x as fe,P as ve,r as u,D as ye,t as o}from"./app-BJfYyIIX.js";import{C as he}from"./CrudTable-CXIIn3vQ.js";import{C as I}from"./CrudFormModal-I0cLiJrd.js";import{C as be}from"./CrudDeleteModal-B6HMcwYN.js";import{P as je}from"./pagination-CkJ-fhRF.js";import{S as _e}from"./search-and-filter-bar-BqVa3_Yk.js";import{u as xe}from"./use-initials-BK4eRgYY.js";import Ce from"./view-15TD1CGd.js";import"./textarea-Am1DxbQR.js";import"./select-v6HfP-lT.js";import"./index-BdQq_4o_.js";import"./index-9MclThM-.js";import"./chevron-up-C77P-Xnl.js";import"./react-country-flag.esm-Bs2jngHP.js";import"./language-BbwPiY59.js";import"./sparkles-DiRyEFzz.js";import"./loader-circle-BSOgoX7W.js";import"./copy-C-oQ_m_8.js";import"./CookieConsentBanner-C38N4PTk.js";import"./refresh-cw-ALYE7VHu.js";import"./globe-BDbxh4XP.js";import"./settings-iEK2zkZs.js";import"./switch-Cx2aNaqN.js";import"./chevron-right-C_sLmqOC.js";import"./layout-grid-CoeIbdlV.js";import"./briefcase-XD6VuWqm.js";import"./credit-card-7DJJO-Xg.js";import"./gift-BfcFhtsh.js";import"./users-TIev6QWg.js";import"./calendar-CbSq6zTy.js";import"./calendar-days-C8NX5zeY.js";import"./clock-Dx30a3fw.js";import"./timer-BEVp3YT6.js";import"./dollar-sign-GjiaL2_k.js";import"./coins-Bsoy02xu.js";import"./index-BFT_C1pH.js";import"./user-DLrpac_w.js";import"./log-out-BMSBi6tX.js";/* empty css *//* empty css */import"./utils-BWxnHGCV.js";import"./table-Dfaf1ArC.js";import"./unlink-CSSaKX1C.js";import"./scale-DITx6obc.js";import"./arrow-down-left-HrajnKrs.js";import"./arrow-left-CPwg9j8r.js";import"./arrow-right-left-Vtg0YaAj.js";import"./arrow-right-Ci67tnlN.js";import"./arrow-up-down-EbVjlgTv.js";import"./lock-open-BhIWs4jd.js";import"./award-CHhopoZe.js";import"./ban-DnM0zgR7.js";import"./indian-rupee-DPO8qQHc.js";import"./bell-BCDzorcc.js";import"./book-open-Cp3YBRXY.js";import"./boxes-jH_m8Erv.js";import"./building-2-Cj2jEVV4.js";import"./building-R1behtTx.js";import"./calculator-DeIZ_ZnG.js";import"./calendar-check-B97zAIH7.js";import"./camera-BPbWGWIp.js";import"./chart-column-CmESNu9-.js";import"./chart-no-axes-column-increasing-Ca2j90iV.js";import"./chart-no-axes-column-DKaCwpqd.js";import"./chevron-left-DjVFv1BX.js";import"./circle-alert-BUzHLR-o.js";import"./circle-check-big-CcY08IiJ.js";import"./circle-check-DqHPFLFb.js";import"./circle-help-PqoQB1MX.js";import"./circle-x-DaE5iCCq.js";import"./circle-DWyWs_iS.js";import"./clipboard-list-DHcKg6dk.js";import"./code-mWJntjLp.js";import"./crosshair-DC2k-Gat.js";import"./crown-BdRqXyJ4.js";import"./download-BQYC1kvZ.js";import"./external-link-C8fDH340.js";import"./eye-off-BWt-tbtR.js";import"./eye-bHRQkV_M.js";import"./instagram-BGFGLm0A.js";import"./file-down-DdAdFDO0.js";import"./file-up-nnRIZR-c.js";import"./filter-CC8qq1a5.js";import"./house-CP2gbXUp.js";import"./git-branch-6GYnMk0R.js";import"./grip-vertical-79loVX39.js";import"./hard-drive-Df2an8KV.js";import"./hash-B51tGSz7.js";import"./heart-COE1qsyT.js";import"./info-9TBDJdqu.js";import"./key-o09zqxH4.js";import"./layers-C9iGGCGA.js";import"./lightbulb-K-Y_5YRB.js";import"./link-2-CR0KRHLP.js";import"./link-C6CCqWCl.js";import"./twitter-AWZbUS3C.js";import"./list-Ds3PdXRr.js";import"./lock-BIgt4mUB.js";import"./log-in-D4oQHz9u.js";import"./mail-C0lU3gWz.js";import"./map-pin-DLXmT6vb.js";import"./menu-R8g6P5hx.js";import"./message-square-warning-Dm7PgWIQ.js";import"./message-square-sYeVMJIP.js";import"./monitor-B58WrREO.js";import"./package-CKBK6gna.js";import"./percent-D5F6QCv7.js";import"./phone-D7CEVFIv.js";import"./plane-KS8dzK3k.js";import"./play-Cdfobb7v.js";import"./qr-code-DE8ihwxi.js";import"./quote-D-YN78OJ.js";import"./ruler-DPRgRDAW.js";import"./send-CP2EW1aB.js";import"./server-BlMiJO2V.js";import"./wifi-0CnlAuL6.js";import"./shield-check-uR9kl8S3.js";import"./shield-D4lNYMUI.js";import"./square-check-big-w_EmGz-9.js";import"./square-pen-CtvYVz4A.js";import"./star-B6re2o3I.js";import"./sun-s4Qh-lo7.js";import"./tag-D3UUs3NH.js";import"./target-Tqqh32oJ.js";import"./thumbs-up-BUs9xhvK.js";import"./ticket-gUCzNpKq.js";import"./trash-2-CUSPqIMQ.js";import"./trash-BMNHUWub.js";import"./trending-down-B0KCstqH.js";import"./trending-up-BP28QOMf.js";import"./triangle-alert-DzZt-B82.js";import"./trophy-_nNwkq4U.js";import"./type-CV-12-co.js";import"./user-check-BAzI_pqD.js";import"./user-plus-CIf52zHT.js";import"./user-x-ZeBdhs4I.js";import"./wallet-CSYigBrV.js";import"./wrench-DGxlm__Y.js";import"./zap-DtypiZBz.js";import"./radio-group-KOpzhUXP.js";import"./checkbox-D89mOuIk.js";import"./scroll-area-oGCj-C9A.js";function sa(){var M,q,$;const{t:r}=ce(),{auth:j,leaveBalances:i,employees:_,leaveTypes:x,years:z,filters:m={},globalSettings:a}=ue().props,N=(j==null?void 0:j.permissions)||[],U=xe(),[f,g]=p.useState(m.search||""),[n,w]=p.useState(m.employee_id||"all"),[d,F]=p.useState(m.leave_type_id||"all"),[c,k]=p.useState(m.year||"all"),[G,P]=p.useState(!1),[H,v]=p.useState(!1),[J,C]=p.useState(!1),[K,A]=p.useState(!1),[l,O]=p.useState(null),[b,E]=p.useState("create"),[S,D]=p.useState(null),Q=()=>f!==""||n!=="all"||d!=="all"||c!=="all",W=()=>(f?1:0)+(n!=="all"?1:0)+(d!=="all"?1:0)+(c!=="all"?1:0),X=e=>{e.preventDefault(),L()},L=()=>{u.get(route("hr.leave-balances.index"),{page:1,search:f||void 0,employee_id:n!=="all"?n:void 0,leave_type_id:d!=="all"?d:void 0,year:c!=="all"?c:void 0,per_page:m.per_page},{preserveState:!0,preserveScroll:!0})},Z=e=>{const t=m.sort_field===e&&m.sort_direction==="asc"?"desc":"asc";u.get(route("hr.leave-balances.index"),{sort_field:e,sort_direction:t,page:1,search:f||void 0,employee_id:n!=="all"?n:void 0,leave_type_id:d!=="all"?d:void 0,year:c!=="all"?c:void 0,per_page:m.per_page},{preserveState:!0,preserveScroll:!0})},B=(e,t)=>{switch(O(t),e){case"view":D(t);break;case"edit":E("edit"),v(!0);break;case"delete":C(!0);break;case"adjust":A(!0);break}},ee=()=>{O(null),E("create"),v(!0)},re=e=>{b==="create"?(a!=null&&a.is_demo||o.loading(r("Creating leave balance...")),u.post(route("hr.leave-balances.store"),e,{onSuccess:t=>{v(!1),a!=null&&a.is_demo||o.dismiss(),t.props.flash.success?o.success(r(t.props.flash.success)):t.props.flash.error&&o.error(r(t.props.flash.error))},onError:t=>{a!=null&&a.is_demo||o.dismiss(),typeof t=="string"?o.error(t):o.error(`Failed to create leave balance: ${Object.values(t).join(", ")}`)}})):b==="edit"&&(a!=null&&a.is_demo||o.loading(r("Updating leave balance...")),u.put(route("hr.leave-balances.update",l.id),e,{onSuccess:t=>{v(!1),a!=null&&a.is_demo||o.dismiss(),t.props.flash.success?o.success(r(t.props.flash.success)):t.props.flash.error&&o.error(r(t.props.flash.error))},onError:t=>{a!=null&&a.is_demo||o.dismiss(),typeof t=="string"?o.error(t):o.error(`Failed to update leave balance: ${Object.values(t).join(", ")}`)}}))},te=()=>{a!=null&&a.is_demo||o.loading(r("Deleting leave balance...")),u.delete(route("hr.leave-balances.destroy",l.id),{onSuccess:e=>{C(!1),a!=null&&a.is_demo||o.dismiss(),e.props.flash.success?o.success(r(e.props.flash.success)):e.props.flash.error&&o.error(r(e.props.flash.error))},onError:e=>{a!=null&&a.is_demo||o.dismiss(),typeof e=="string"?o.error(e):o.error(`Failed to delete leave balance: ${Object.values(e).join(", ")}`)}})},ae=e=>{a!=null&&a.is_demo||o.loading(r("Adjusting leave balance...")),u.put(route("hr.leave-balances.adjust",l.id),e,{onSuccess:t=>{A(!1),a!=null&&a.is_demo||o.dismiss(),t.props.flash.success?o.success(r(t.props.flash.success)):t.props.flash.error&&o.error(r(t.props.flash.error))},onError:t=>{a!=null&&a.is_demo||o.dismiss(),typeof t=="string"?o.error(t):o.error(`Failed to adjust leave balance: ${Object.values(t).join(", ")}`)}})},oe=()=>{g(""),w("all"),F("all"),k("all"),P(!1),u.get(route("hr.leave-balances.index"),{page:1,per_page:m.per_page},{preserveState:!0,preserveScroll:!0})},T=[];fe(N,"create-leave-balances")&&T.push({label:r("Add Leave Balance"),icon:s.jsx(ve,{className:"h-4 w-4 mr-2"}),variant:"default",onClick:()=>ee()});const se=[{title:r("Dashboard"),href:route("dashboard")},{title:r("Leave Management"),href:route("hr.leave-balances.index")},{title:r("Leave Balances")}],ie=[{key:"employee",label:r("Employee"),render:(e,t)=>{var y,h,Y,R,V;return s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-primary text-white overflow-hidden shrink-0",children:(y=t.employee)!=null&&y.avatar?s.jsx("img",{src:t.employee.avatar,alt:(h=t.employee)==null?void 0:h.name,className:"h-full w-full object-cover"}):U(((Y=t.employee)==null?void 0:Y.name)||"")}),s.jsxs("div",{children:[s.jsx("div",{className:"font-medium",children:((R=t.employee)==null?void 0:R.name)||"-"}),s.jsx("div",{className:"text-sm text-muted-foreground",children:((V=t.employee)==null?void 0:V.email)||""})]})]})}},{key:"leave_type",label:r("Leave Type"),render:(e,t)=>{var y,h;return s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("div",{className:"w-3 h-3 rounded-full",style:{backgroundColor:(y=t.leave_type)==null?void 0:y.color}}),s.jsx("span",{children:((h=t.leave_type)==null?void 0:h.name)||"-"})]})}},{key:"year",label:r("Year"),sortable:!0,render:e=>s.jsx("span",{className:"font-mono",children:e})},{key:"allocated_days",label:r("Allocated"),render:e=>s.jsx("span",{className:"font-mono text-blue-600",children:e})},{key:"used_days",label:r("Used"),render:e=>s.jsx("span",{className:"font-mono text-red-600",children:e})},{key:"remaining_days",label:r("Remaining"),render:e=>s.jsx("span",{className:`font-mono ${e>0?"text-green-600":"text-gray-500"}`,children:e})},{key:"carried_forward",label:r("Carried Forward"),render:e=>s.jsx("span",{className:"font-mono text-purple-600",children:e})},{key:"manual_adjustment",label:r("Adjustment"),render:e=>s.jsxs("span",{className:`font-mono ${e>0?"text-green-600":e<0?"text-red-600":"text-gray-500"}`,children:[e>0?"+":"",e]})}],le=[{label:r("View"),icon:"Eye",action:"view",className:"text-blue-500",requiredPermission:"view-leave-balances"},{label:r("Edit"),icon:"Edit",action:"edit",className:"text-amber-500",requiredPermission:"edit-leave-balances"},{label:r("Adjust"),icon:"Settings",action:"adjust",className:"text-purple-500",requiredPermission:"adjust-leave-balances"},{label:r("Delete"),icon:"Trash2",action:"delete",className:"text-red-500",requiredPermission:"delete-leave-balances"}],me=[{value:"all",label:r("All Employees")},...(_||[]).map(e=>({value:e.id.toString(),label:e.name}))],pe=[{value:"all",label:r("All Leave Types")},...(x||[]).map(e=>({value:e.id.toString(),label:e.name}))],ne=[{value:"all",label:r("All Years")},...(z||[]).map(e=>({value:e.toString(),label:e.toString()}))];return s.jsxs(de,{title:r("Leave Balances"),url:"/hr/leave-balances",actions:T,breadcrumbs:se,noPadding:!0,children:[s.jsx("div",{className:"bg-white dark:bg-gray-900 rounded-lg shadow mb-4 p-4",children:s.jsx(_e,{searchTerm:f,onSearchChange:g,onSearch:X,filters:[{name:"employee_id",label:r("Employee"),type:"select",value:n,onChange:w,options:me},{name:"leave_type_id",label:r("Leave Type"),type:"select",value:d,onChange:F,options:pe},{name:"year",label:r("Year"),type:"select",value:c,onChange:k,options:ne}],showFilters:G,setShowFilters:P,hasActiveFilters:Q,activeFilterCount:W,onResetFilters:oe,onApplyFilters:L,currentPerPage:((M=m.per_page)==null?void 0:M.toString())||"10",onPerPageChange:e=>{u.get(route("hr.leave-balances.index"),{page:1,per_page:parseInt(e),search:f||void 0,employee_id:n!=="all"?n:void 0,leave_type_id:d!=="all"?d:void 0,year:c!=="all"?c:void 0},{preserveState:!0,preserveScroll:!0})}})}),s.jsxs("div",{className:"bg-white dark:bg-gray-900 rounded-lg shadow overflow-hidden",children:[s.jsx(he,{columns:ie,actions:le,data:(i==null?void 0:i.data)||[],from:(i==null?void 0:i.from)||1,onAction:B,sortField:m.sort_field,sortDirection:m.sort_direction,onSort:Z,permissions:N,entityPermissions:{view:"view-leave-balances",create:"create-leave-balances",edit:"edit-leave-balances",delete:"delete-leave-balances"}}),s.jsx(je,{from:(i==null?void 0:i.from)||0,to:(i==null?void 0:i.to)||0,total:(i==null?void 0:i.total)||0,links:i==null?void 0:i.links,entityName:r("leave balances"),onPageChange:e=>u.get(e)})]}),s.jsx(I,{isOpen:H,onClose:()=>v(!1),onSubmit:re,formConfig:{fields:[{name:"employee_id",label:r("Employee"),type:"select",required:!0,options:_?_.map(e=>({value:e.id.toString(),label:e.name})):[]},{name:"leave_type_id",label:r("Leave Type"),type:"select",required:!0,options:x?x.map(e=>({value:e.id.toString(),label:e.name})):[]},{name:"year",label:r("Year"),type:"number",required:!0,min:2020,max:2030,defaultValue:new Date().getFullYear()},{name:"allocated_days",label:r("Allocated Days"),type:"number",required:!0,min:0,step:.5},{name:"carried_forward",label:r("Carried Forward Days"),type:"number",min:0,step:.5,defaultValue:0},{name:"manual_adjustment",label:r("Manual Adjustment"),type:"number",step:.5,defaultValue:0},{name:"adjustment_reason",label:r("Adjustment Reason"),type:"textarea"}],modalSize:"lg"},initialData:l,title:r(b==="create"?"Add New Leave Balance":"Edit Leave Balance"),mode:b}),s.jsx(I,{isOpen:K,onClose:()=>A(!1),onSubmit:ae,formConfig:{fields:[{name:"manual_adjustment",label:r("Adjustment Amount"),type:"number",required:!0,step:.5},{name:"adjustment_reason",label:r("Reason for Adjustment"),type:"textarea",required:!0}],modalSize:"md"},initialData:l,title:r("Adjust Leave Balance"),mode:"edit"}),s.jsx(be,{isOpen:J,onClose:()=>C(!1),onConfirm:te,itemName:`${(q=l==null?void 0:l.employee)==null?void 0:q.name} - ${($=l==null?void 0:l.leave_type)==null?void 0:$.name} (${l==null?void 0:l.year})`||"",entityName:"leave balance"}),s.jsx(ye,{open:!!S,onOpenChange:()=>D(null),children:S&&s.jsx(Ce,{leaveBalance:S})})]})}export{sa as default};
|