PageSourceSearch

https://www.elevolt.co.ke/_next/static/chunks/pages/hr/[tenant]/payroll/adjustments-5a588ab3dcb56550.js

js elevolt.co.ke collected 2026-10-04 21:47:54 UTC 29,951 bytes, 1 lines download raw bytes

1try{!function(){var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a0454f5e-c776-4c5e-9bed-0b6703b78f2c",e._sentryDebugIdIdentifier="sentry-dbid-a0454f5e-c776-4c5e-9bed-0b6703b78f2c")}()}catch(e){}(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3641],{9261:function(e,t,a){(window.__NEXT_P=window.__NEXT_P||[]).push(["/hr/[tenant]/payroll/adjustments",function(){return a(20309)}])},20309:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return H}});var n=a(52322),s=a(47023),l=a(10988),r=a(65232),i=a(17047),d=a(1973),o=a(32128),c=a(63798),u=a(62372),p=a(77590),m=a(78690),x=a(28983),h=a(90269),f=a(23825),g=a(97203),b=a(75588),j=a(42399),y=a(40511),v=a(19317),_=a(79663),N=a(65405),w=a(51634),C=a(76467),Z=a(84475),S=a(64792),A=a(74523),k=a(59417),P=a(99603),R=a(36160),T=a.n(R),q=a(5632),E=a(13980),I=a.n(E),O=a(2784),D=a(62202),F=a(91516),L=a(87421),V=a(79337),B=a(76974),z=a(95254),M=a(87236),U=a(60315);let G=e=>{let{show:t,onClose:a,adjustment:l,defaultPeriodId:r,onSuccess:i}=e,d=!!(null==l?void 0:l.id),[p,f]=(0,O.useState)({name:"",user_id:"",user_name:"",type:"bonus",category:"one_time",calculation_type:"fixed",amount:"",percentage:"",is_taxable:!0,effective_date:(0,U.default)(new Date,"yyyy-MM-dd"),payroll_period_id:r||"",description:""}),[b,j]=(0,O.useState)({}),[y,v]=(0,O.useState)(""),[_,N]=(0,O.useState)(null),w=(0,m.Z)(y,300),{data:Z,isFetching:S}=(0,h.bD)({search:w,enabled:w.length>=2}),k=(0,O.useMemo)(()=>Z?Z.map(e=>({label:e.name,value:e.uid})):[],[Z]),{data:P}=(0,M.db)({limit:50,status:"draft"}),R=(null==P?void 0:P.data)||[],T=(0,x.Ul)({onSuccess:()=>{D.default.success("Adjustment created successfully"),i&&i(),V()},onError:e=>{D.default.error((null==e?void 0:e.message)||"Failed to create adjustment")}}),q=(0,x.TW)({adjustmentId:null==l?void 0:l.id,onSuccess:()=>{D.default.success("Adjustment updated successfully"),i&&i(),V()},onError:e=>{D.default.error((null==e?void 0:e.message)||"Failed to update adjustment")}});(0,O.useEffect)(()=>{l&&d&&(f({name:l.name||"",user_id:l.user_id||"",user_name:l.user_name||"",type:l.type||"bonus",category:l.category||"one_time",calculation_type:l.calculation_type||"fixed",amount:l.amount||"",percentage:l.percentage||"",is_taxable:!1!==l.is_taxable,effective_date:l.effective_date||(0,U.default)(new Date,"yyyy-MM-dd"),payroll_period_id:l.payroll_period_id||"",description:l.description||""}),l.user_id&&l.user_name&&N({value:l.user_id,label:l.user_name}))},[l,d]),(0,O.useEffect)(()=>{r&&!d&&f(e=>({...e,payroll_period_id:r}))},[r,d]);let E=(0,O.useCallback)(e=>{let{name:t,value:a,type:n,checked:s}=e.target;f(e=>({...e,[t]:"checkbox"===n?s:a})),j(e=>{if(e[t]){let a={...e};return delete a[t],a}return e})},[]),I=(0,O.useCallback)(e=>{N(e),e?(f(t=>({...t,user_id:e.value,user_name:e.label})),j(e=>{if(e.user_id){let t={...e};return delete t.user_id,t}return e})):f(e=>({...e,user_id:"",user_name:""}))},[]),L=(0,O.useCallback)(e=>new Promise(t=>{if(!e||e.length<2){t([]);return}v(e);let a=()=>{w!==e||S?setTimeout(a,100):t(k)};setTimeout(a,350)}),[w,S,k]),V=(0,O.useCallback)(()=>{f({name:"",user_id:"",user_name:"",type:"bonus",category:"one_time",calculation_type:"fixed",amount:"",percentage:"",is_taxable:!0,effective_date:(0,U.default)(new Date,"yyyy-MM-dd"),payroll_period_id:r||"",description:""}),N(null),j({}),a&&a()},[a,r]),B=(0,O.useCallback)(()=>{let e={};return p.name&&p.name.trim()||(e.name="Please provide a name for this adjustment"),p.user_id||(e.user_id="Please select an employee"),p.effective_date||(e.effective_date="Please select an effective date"),"fixed"===p.calculation_type?(!p.amount||0>=Number(p.amount))&&(e.amount="Please enter a valid amount greater than 0"):!p.percentage||0>=Number(p.percentage)?e.percentage="Please enter a valid percentage greater than 0":Number(p.percentage)>100&&(e.percentage="Percentage cannot exceed 100"),e},[p]),G=(0,O.useCallback)(e=>{e.preventDefault();let t=B();if(Object.keys(t).length>0){j(t),D.default.error("Please fix the errors in the form");return}let a={...p,calculation_type:p.calculation_type};"fixed"===p.calculation_type?(a.amount=Number(p.amount),delete a.percentage):(a.percentage=Number(p.percentage),delete a.amount),d?q.mutate(a):T.mutate(a)},[p,d,T,q,B]),K=T.isPending||q.isPending,W=Object.entries(A.sQ).map(e=>{let[t,{label:a}]=e;return{value:t,label:a}}),J=Object.entries(A.eL).map(e=>{let[t,{label:a}]=e;return{value:t,label:a}});return(0,n.jsx)(g.B,{centerY:!0,fullWidth:!0,maxWidth:"500px",onClose:V,show:t,title:d?"Edit Adjustment":"Create Adjustment",children:(0,n.jsxs)("form",{className:"space-y-4",onSubmit:G,children:[(0,n.jsxs)("div",{children:[(0,n.jsxs)(C.Z,{className:"block text-sm font-medium text-gray-700 mb-1",variant:"label",children:["Employee ",(0,n.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,n.jsx)(F.Z,{className:"c-react-select ".concat(b.user_id?"border-red-500":""),classNamePrefix:"crs",isClearable:!0,isDisabled:d,isSearchable:!0,loadOptions:L,onChange:I,placeholder:"Search by name...",styles:{control:e=>({...e,borderColor:b.user_id?"#ef4444":e.borderColor,"&:hover":{borderColor:b.user_id?"#ef4444":e.borderColor}})},value:_}),!!b.user_id&&(0,n.jsx)(C.Z,{className:"mt-1 text-red-500",variant:"caption",children:b.user_id})]}),(0,n.jsx)("div",{children:(0,n.jsx)(z.o,{error:b.name,label:"Adjustment Name",maxLength:255,name:"name",onChange:E,placeholder:"e.g., December Performance Bonus",required:!0,value:p.name})}),(0,n.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,n.jsx)(c.P,{label:"Type",name:"type",onChange:E,options:W,required:!0,selected:p.type}),(0,n.jsx)(c.P,{label:"Category",name:"category",onChange:E,options:J,required:!0,selected:p.category})]}),(0,n.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,n.jsx)(c.P,{label:"Calculation Type",name:"calculation_type",onChange:E,options:[{value:"fixed",label:"Fixed Amount"},{value:"percentage",label:"Percentage of Salary"}],required:!0,selected:p.calculation_type}),"fixed"===p.calculation_type&&(0,n.jsx)(z.o,{error:b.amount,label:"Amount (KES)",min:"0",name:"amount",onChange:E,placeholder:"0.00",required:!0,step:"0.01",type:"number",value:p.amount}),"percentage"===p.calculation_type&&(0,n.jsx)(z.o,{error:b.percentage,label:"Percentage (%)",max:"100",min:"0.01",name:"percentage",onCh
1ange:E,placeholder:"10",required:!0,step:"0.01",type:"number",value:p.percentage})]}),(0,n.jsx)("div",{className:"flex items-center",children:(0,n.jsx)(o.J,{checked:p.is_taxable,label:"This adjustment is taxable",name:"is_taxable",onChange:E})}),(0,n.jsx)(z.o,{error:b.effective_date,label:"Effective Date",name:"effective_date",onChange:E,required:!0,type:"date",value:p.effective_date}),(0,n.jsx)(c.P,{defaultOption:"Select period (optional)",description:"Leave blank to apply automatically to the next payroll",label:"Apply to Period",name:"payroll_period_id",onChange:E,options:R.map(e=>({value:String(e.id),label:e.name})),selected:String(p.payroll_period_id)}),(0,n.jsx)(u.K,{label:"Description",name:"description",onChange:E,placeholder:"Reason for this adjustment...",rows:3,value:p.description}),(0,n.jsxs)("div",{className:"flex justify-end gap-3 pt-4 border-t border-gray-200",children:[(0,n.jsx)(s.Z,{disabled:K,onClick:V,outline:!0,type:"button",children:"Cancel"}),(0,n.jsx)(s.Z,{disabled:K,type:"submit",children:K?"Saving...":d?"Update Adjustment":"Create Adjustment"})]})]})})};G.propTypes={show:I().bool.isRequired,onClose:I().func.isRequired,adjustment:I().shape({id:I().oneOfType([I().string,I().number]),name:I().string,user_id:I().string,user_name:I().string,type:I().string,category:I().string,calculation_type:I().oneOf(["fixed","percentage"]),amount:I().number,percentage:I().number,is_taxable:I().bool,effective_date:I().string,payroll_period_id:I().oneOfType([I().string,I().number]),description:I().string}),defaultPeriodId:I().oneOfType([I().string,I().number]),onSuccess:I().func},G.defaultProps={adjustment:null,defaultPeriodId:null,onSuccess:void 0};let K=()=>{let{data:e,isLoading:t,error:a}=(0,x.xI)({});return t||a||!e?null:(0,n.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[(0,n.jsxs)("div",{className:"bg-white p-3 rounded-md text-left border flex flex-col gap-2 md:gap-3",children:[(0,n.jsx)(C.Z,{variant:"bodySmall",weight:"font-semibold",children:"Pending Approval"}),(0,n.jsx)(C.Z,{size:"text-2xl",weight:"font-semibold",children:e.pending_count||0}),!!e.pending_total&&(0,n.jsx)(C.Z,{variant:"caption",children:(0,S.x)(e.pending_total)})]}),(0,n.jsxs)("div",{className:"bg-white p-3 rounded-md text-left border flex flex-col gap-2 md:gap-3",children:[(0,n.jsx)(C.Z,{variant:"bodySmall",weight:"font-semibold",children:"Approved"}),(0,n.jsx)(C.Z,{size:"text-2xl",weight:"font-semibold",children:e.approved_count||0}),!!e.approved_total&&(0,n.jsx)(C.Z,{variant:"caption",children:(0,S.x)(e.approved_total)})]}),(0,n.jsxs)("div",{className:"bg-white p-3 rounded-md text-left border flex flex-col gap-2 md:gap-3",children:[(0,n.jsx)(C.Z,{variant:"bodySmall",weight:"font-semibold",children:"Total Bonuses"}),(0,n.jsx)(C.Z,{size:"text-2xl",weight:"font-semibold",children:e.bonus_count||0}),!!e.bonus_total&&(0,n.jsx)(C.Z,{variant:"caption",children:(0,S.x)(e.bonus_total)})]}),(0,n.jsxs)("div",{className:"bg-white p-3 rounded-md text-left border flex flex-col gap-2 md:gap-3",children:[(0,n.jsx)(C.Z,{variant:"bodySmall",weight:"font-semibold",children:"Total Deductions"}),(0,n.jsx)(C.Z,{size:"text-2xl",weight:"font-semibold",children:e.deduction_count||0}),!!e.deduction_total&&(0,n.jsx)(C.Z,{variant:"caption",children:(0,S.x)(e.deduction_total)})]})]})},W=e=>{var t;let{adjustment:a,onView:s,onEdit:r,onSubmit:i,onApprove:d,onReject:c,onDelete:u,isSelected:p,onSelect:m,showCheckbox:x}=e,h=A.sQ[a.type]||{label:a.type},f=A.eL[a.category]||{label:a.category},g="pending_approval"===a.status,b="draft"===a.status,j="approved"===a.status,_="percentage"===a.calculation_type?"".concat(a.percentage,"%"):(0,S.x)(a.amount);return(0,n.jsxs)("tr",{className:"hover:bg-gray-50 transition-colors duration-150 ".concat(p?"bg-blue-50":""),children:[!!x&&(0,n.jsx)("td",{className:"px-4 py-3",children:!!j&&(0,n.jsx)(o.J,{checked:p,label:"",name:"select-".concat(a.id),onChange:()=>m(a.id)})}),(0,n.jsx)("td",{className:"px-4 py-3",children:(0,n.jsx)(C.Z,{variant:"labelValue",children:a.name||"Untitled"})}),(0,n.jsx)("td",{className:"px-4 py-3 hidden md:table-cell",children:(0,n.jsx)(C.Z,{variant:"labelValue",children:(null===(t=a.user)||void 0===t?void 0:t.name)||"Unknown"})}),(0,n.jsx)("td",{className:"px-4 py-3",children:(0,n.jsx)(l.Z,{color:"deduction"===a.type?"red":"green",label:h.label,size:"md"})}),(0,n.jsx)("td",{className:"px-4 py-3 hidden lg:table-cell",children:!!a.category&&(0,n.jsx)(l.Z,{label:f.label,size:"md"})}),(0,n.jsx)("td",{className:"px-4 py-3 text-right",children:(0,n.jsxs)(C.Z,{className:"deduction"===a.type?"text-red-600":"text-green-600",variant:"labelValue",children:["deduction"===a.type?"-":"+",_]})}),(0,n.jsx)("td",{className:"px-4 py-3 text-center",children:(0,n.jsx)(y.Z,{size:"sm",status:a.status,type:"adjustment"})}),(0,n.jsx)("td",{className:"px-4 py-3",children:(0,n.jsx)("div",{className:"flex justify-end",children:(0,n.jsx)(v.Z,{menuIcon:(0,n.jsx)(P.G,{"aria-label":"Open adjustment actions menu",className:"text-lg text-gray-500 hover:text-gray-700 cursor-pointer",icon:k.iV1,size:"1x"}),menuItems:[{text:"View Details",icon:(0,n.jsx)(P.G,{className:"mr-1",icon:k.Mdf}),action:()=>s(a),show:()=>!0},{text:"Edit",icon:(0,n.jsx)(P.G,{className:"mr-1",icon:k.Xcf}),action:()=>r(a),show:()=>b},{text:"Submit for Approval",icon:(0,n.jsx)(P.G,{className:"mr-1",icon:k.XCy}),action:()=>i(a),show:()=>b},{text:"Delete",icon:(0,n.jsx)(P.G,{className:"mr-1",icon:k.$aW}),action:()=>u(a),show:()=>b},{text:"Approve",icon:(0,n.jsx)(P.G,{className:"mr-1",icon:k.LEp}),action:()=>d(a),show:()=>g},{text:"Reject",icon:(0,n.jsx)(P.G,{className:"mr-1",icon:k.NBC}
1),action:()=>c(a),show:()=>g}],subject:a})})})]})};W.propTypes={adjustment:I().object.isRequired,onView:I().func.isRequired,onEdit:I().func.isRequired,onSubmit:I().func.isRequired,onApprove:I().func.isRequired,onReject:I().func.isRequired,onDelete:I().func.isRequired,isSelected:I().bool,onSelect:I().func,showCheckbox:I().bool};let J=e=>{let{status:t,filters:a,onView:s,onEdit:l,onSubmit:r,onApprove:i,onReject:c,onDelete:u,selectedIds:p,onSelectToggle:m,onSelectAll:h}=e,[g,b]=(0,O.useState)(1),{data:y,isLoading:v,isFetching:_,error:N}=(0,x.Cj)({page:g,limit:20,status:t||void 0,type:(null==a?void 0:a.type)||void 0,userId:(null==a?void 0:a.userId)||void 0}),w=(null==y?void 0:y.data)||[],Z=(null==y?void 0:y.meta)||{},S=w.filter(e=>"approved"===e.status),A=S.length>0&&S.every(e=>p.includes(e.id)),k=S.some(e=>p.includes(e.id)),P=!t||"approved"===t;return(0,n.jsxs)("div",{children:[!!(v||N||T()(w))&&(0,n.jsx)(d.Z,{description:N?"Please try refreshing the page.":"Create an adjustment to get started.",design:"wrapped",isError:!!N,isLoading:v,message:N?"Failed to load adjustments":"No adjustments found"}),!!(!v&&!N&&!T()(w))&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(f.Z,{isFetching:_,children:(0,n.jsx)("div",{className:"border border-gray-200 rounded-lg overflow-x-auto",children:(0,n.jsxs)("table",{className:"w-full",children:[(0,n.jsx)("thead",{className:"bg-gray-50",children:(0,n.jsxs)("tr",{children:[!!P&&(0,n.jsx)("th",{className:"px-4 py-3 text-left w-12",children:S.length>0&&(0,n.jsx)(o.J,{checked:A,indeterminate:k?!A:null,label:"",name:"select-all",onChange:()=>h(S.map(e=>e.id))})}),(0,n.jsx)("th",{className:"px-4 py-3 text-left",children:(0,n.jsx)(C.Z,{variant:"label",children:"Name"})}),(0,n.jsx)("th",{className:"px-4 py-3 text-left hidden md:table-cell",children:(0,n.jsx)(C.Z,{variant:"label",children:"Employee"})}),(0,n.jsx)("th",{className:"px-4 py-3 text-left",children:(0,n.jsx)(C.Z,{variant:"label",children:"Type"})}),(0,n.jsx)("th",{className:"px-4 py-3 text-left hidden lg:table-cell",children:(0,n.jsx)(C.Z,{variant:"label",children:"Category"})}),(0,n.jsx)("th",{className:"px-4 py-3 text-right",children:(0,n.jsx)(C.Z,{variant:"label",children:"Amount"})}),(0,n.jsx)("th",{className:"px-4 py-3 text-center",children:(0,n.jsx)(C.Z,{variant:"label",children:"Status"})}),(0,n.jsx)("th",{className:"px-4 py-3 text-right",children:(0,n.jsx)(C.Z,{variant:"label",children:"Actions"})})]})}),(0,n.jsx)("tbody",{className:"divide-y divide-gray-200",children:w.map(e=>(0,n.jsx)(W,{adjustment:e,isSelected:p.includes(e.id),onApprove:i,onDelete:u,onEdit:l,onReject:c,onSelect:m,onSubmit:r,onView:s,showCheckbox:P},e.id))})]})})}),Z.last_page>1&&(0,n.jsx)("div",{className:"mt-4 flex justify-center",children:(0,n.jsx)(j.Z,{currentPage:Z.current_page,onPageChange:b,totalPages:Z.last_page})})]})]})};J.propTypes={status:I().string,filters:I().object,onView:I().func.isRequired,onEdit:I().func.isRequired,onSubmit:I().func.isRequired,onApprove:I().func.isRequired,onReject:I().func.isRequired,onDelete:I().func.isRequired,selectedIds:I().array,onSelectToggle:I().func,onSelectAll:I().func};let X=e=>{var t;let{tenantName:a}=e,{period:l}=(0,q.useRouter)().query,[d,o]=(0,O.useState)(0),[f,j]=(0,O.useState)(!1),[y,v]=(0,O.useState)(null),[Z,R]=(0,O.useState)(null),[T,E]=(0,O.useState)(!1),[I,B]=(0,O.useState)(!1),[z,M]=(0,O.useState)(null),[U,W]=(0,O.useState)(""),[X,H]=(0,O.useState)({userId:"",type:""}),[Q,Y]=(0,O.useState)([]),[$,ee]=(0,O.useState)(""),et=(0,m.Z)($,300),{data:ea,isFetching:en}=(0,h.bD)({search:et,enabled:et.length>=2}),es=(0,O.useMemo)(()=>ea?ea.map(e=>({label:e.name,value:e.uid})):[],[ea]),el=(0,O.useCallback)(e=>new Promise(t=>{if(!e||e.length<2){t([]);return}ee(e);let a=()=>{et!==e||en?setTimeout(a,100):t(es)};setTimeout(a,350)}),[et,en,es]),er=(0,x.pb)({}),ei=(0,x.cv)({}),ed=(0,x.iD)({}),eo=(0,x.El)({}),ec=(0,x.On)({}),eu=(0,O.useCallback)(e=>{R(e.id),E(!0)},[]),ep=(0,O.useCallback)(()=>{E(!1),R(null)},[]),em=(0,O.useCallback)(e=>{v(e),j(!0)},[]),ex=(0,O.useCallback)(e=>{var t;let a="percentage"===e.calculation_type?"".concat(e.percentage,"%"):(0,S.x)(e.amount);(0,i.Z)({title:"Submit for Approval",message:"Submit ".concat(e.type," of ").concat(a," for ").concat((null===(t=e.user)||void 0===t?void 0:t.name)||"this employee"," for approval?"),confirmButtonText:"Submit",suppressRecording:!0,handler:async()=>{try{await er.mutateAsync({adjustmentId:e.id}),D.default.success("Adjustment submitted for approval")}catch(e){D.default.error((null==e?void 0:e.message)||"Failed to submit")}}})},[er]),eh=(0,O.useCallback)(e=>{var t;let a="percentage"===e.calculation_type?"".concat(e.percentage,"%"):(0,S.x)(e.amount);
1(0,i.Z)({title:"Approve Adjustment",message:"Approve ".concat(e.type," of ").concat(a," for ").concat((null===(t=e.user)||void 0===t?void 0:t.name)||"this employee","?"),confirmButtonText:"Approve",suppressRecording:!0,handler:async()=>{try{await ei.mutateAsync({adjustmentId:e.id}),D.default.success("Adjustment approved")}catch(e){D.default.error((null==e?void 0:e.message)||"Failed to approve")}}})},[ei]),ef=(0,O.useCallback)(e=>{M(e),W(""),B(!0)},[]),eg=(0,O.useCallback)(async()=>{if(!U.trim()){D.default.error("Please provide a reason for rejection");return}try{await ed.mutateAsync({adjustmentId:z.id,reason:U.trim()}),D.default.success("Adjustment rejected"),B(!1),M(null),W("")}catch(e){D.default.error((null==e?void 0:e.message)||"Failed to reject")}},[ed,z,U]),eb=(0,O.useCallback)(()=>{B(!1),M(null),W("")},[]),ej=(0,O.useCallback)(e=>{(0,i.Z)({title:"Delete Adjustment",message:"Delete this adjustment? This action cannot be undone.",confirmButtonText:"Delete",handler:async()=>{try{await eo.mutateAsync({adjustmentId:e.id}),D.default.success("Adjustment deleted")}catch(e){D.default.error((null==e?void 0:e.message)||"Failed to delete")}}})},[eo]),ey=(0,O.useCallback)(()=>{j(!1),v(null)},[]),ev=(0,O.useCallback)(()=>{},[]),e_=(0,O.useCallback)((e,t)=>{H(a=>({...a,[e]:t}))},[]),eN=(0,O.useCallback)(e=>{Y(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),ew=(0,O.useCallback)(e=>{Y(t=>e.every(e=>t.includes(e))?t.filter(t=>!e.includes(t)):[...new Set([...t,...e])])},[]),eC=(0,O.useCallback)(()=>{if(0===Q.length){D.default.error("Please select at least one adjustment");return}
1(0,i.Z)({title:"Apply Selected Adjustments",message:"Apply ".concat(Q.length," adjustment(s) to payslips? This will update the affected payslips with these adjustments."),confirmButtonText:"Apply",handler:async()=>{try{await ec.mutateAsync({adjustmentIds:Q}),D.default.success("".concat(Q.length," adjustment(s) applied successfully")),Y([])}catch(e){D.default.error((null==e?void 0:e.message)||"Failed to apply adjustments")}}})},[Q,ec]),eZ=[{href:"/hr/".concat(a,"/payroll"),name:"Payroll",nodeType:"Link"},{href:"/hr/".concat(a,"/payroll/adjustments"),name:"Adjustments",nodeType:"Link"}];return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(V.Z,{title:"".concat((0,p.kC)((0,p.parseUnderScore)(a))," - Payroll Adjustments")}),(0,n.jsx)(b.Z,{actions:(0,n.jsxs)(s.Z,{onClick:()=>j(!0),children:[(0,n.jsx)(P.G,{className:"mr-2",icon:k.r8p}),"Create Adjustment"]}),breadcrumbs:eZ,description:"Approve bonuses, deductions and corrections, then apply them to the right payslips",tenantName:a,title:"Payroll Adjustments"}),(0,n.jsxs)("main",{className:"container flex flex-col gap-4 mx-auto px-4 md:px-8 lg:px-12 pb-6",children:[(0,n.jsx)(K,{}),Q.length>0&&(0,n.jsxs)("div",{className:"bg-blue-50 border border-blue-200 rounded-md p-4 flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[(0,n.jsxs)(C.Z,{variant:"labelValue",children:[Q.length," adjustment(s) selected"]}),(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(s.Z,{onClick:()=>Y([]),outline:!0,size:"sm",type:"button",children:"Clear Selection"}),(0,n.jsx)(s.Z,{disabled:ec.isPending,onClick:eC,size:"sm",type:"button",children:ec.isPending?"Applying...":"Apply Selected"})]})]}),(0,n.jsxs)(r.ZP,{children:[(0,n.jsx)(r.Ol,{padding:{y:0},children:(0,n.jsxs)("div",{className:"w-full flex justify-between items-center",children:[(0,n.jsx)(C.Z,{variant:"sectionHeader",children:"Adjustments"}),(0,n.jsxs)("div",{className:"flex items-center gap-3 py-1",children:[(0,n.jsx)("div",{className:"w-48",children:(0,n.jsx)(F.Z,{className:"c-react-select",classNamePrefix:"crs",isClearable:!0,loadOptions:el,onChange:e=>e_("userId",(null==e?void 0:e.value)||""),placeholder:"Employee..."})}),(0,n.jsx)(c.P,{defaultOption:"All Types",name:"type",onChange:e=>e_("type",e.target.value),options:Object.entries(A.sQ).map(e=>{let[t,{label:a}]=e;return{value:t,label:a}}),selected:X.type||""})]})]})}),(0,n.jsx)(r.eW,{padding:0,children:(0,n.jsxs)(_.ZP,{activeIndex:d,onChange:o,children:[(0,n.jsx)(N.Z,{label:"All"}),(0,n.jsx)(N.Z,{label:"Draft"}),(0,n.jsx)(N.Z,{label:"Pending"}),(0,n.jsx)(N.Z,{label:"Approved"}),(0,n.jsx)(N.Z,{label:"Rejected"}),(0,n.jsx)(N.Z,{label:"Applied"}),["","draft","pending_approval","approved","rejected","applied"].map(e=>(0,n.jsx)(w.Z,{padding:4,children:(0,n.jsx)(J,{filters:X,onApprove:eh,onDelete:ej,onEdit:em,onReject:ef,onSelectAll:ew,onSelectToggle:eN,onSubmit:ex,onView:eu,selectedIds:Q,status:e})},e||"all"))]})})]})]}),(0,n.jsx)(G,{adjustment:y,defaultPeriodId:l,onClose:ey,onSuccess:ev,show:f}),(0,n.jsx)(L.Z,{adjustmentId:Z,onApprove:eh,onClose:ep,onDelete:ej,onEdit:em,onReject:ef,onSubmit:ex,show:T}),(0,n.jsx)(g.B,{centerY:!0,fullWidth:!0,maxWidth:"450px",onClose:eb,show:I,title:"Reject Adjustment",children:(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsx)(C.Z,{variant:"body",children:"Please provide a reason for rejecting this adjustment. This information will be recorded in the audit trail and visible to the employee."}),!!z&&(0,n.jsxs)("div",{className:"p-3 bg-gray-50 rounded-lg",children:[(0,n.jsx)(C.Z,{className:"block",variant:"label",children:"Adjustment"}),(0,n.jsx)(C.Z,{variant:"labelValue",children:z.name}),(0,n.jsx)(C.Z,{className:"block mt-2",variant:"label",children:"Employee"}),(0,n.jsx)(C.Z,{variant:"labelValue",children:(null===(t=z.user)||void 0===t?void 0:t.name)||"Unknown"})]}),(0,n.jsx)(u.K,{label:"Rejection Reason",name:"rejection_reason",onChange:e=>W(e.target.value),placeholder:"Enter the reason for rejection...",required:!0,rows:4,value:U}),(0,n.jsxs)("div",{className:"flex justify-end gap-3 pt-2",children:[(0,n.jsx)(s.Z,{disabled:ed.isPending,onClick:eb,outline:!0,type:"button",children:"Cancel"}),(0,n.jsx)(s.Z,{disabled:ed.isPending||!U.trim(),onClick:eg,type:"button",variant:"danger",children:ed.isPending?"Rejecting...":"Reject Adjustment"})]})]})})]})};X.propTypes={tenantName:I().string.isRequired},X.getInitialProps=async e=>{let{tenant:t}=e.query;return{tenantName:t}};var H=(0,Z.withAuthSync)((0,B.Z)(X))},57713:function(e,t,a){"use strict";a.d(t,{a:function(){return c}});var n=a(52322),s=a(2369),l=a(92942),r=a(13980),i=a.n(r),d=a(2784),o=a(76467);let c=e=>{let{title:t,children:a,defaultExpanded:r=!1,variant:i="default",className:c="",headingLevel:u}=e,[p,m]=(0,d.useState)(r),x="compact"===i,h=(0,n.jsxs)("button",{"aria-expanded":p,className:"w-full flex items-center justify-between px-4 py-3 bg-gray-50 hover:bg-gray-100 transition-colors",onClick:()=>m(!p),type:"button",children:[(0,n.jsx)(o.Z,{as:u?"span":void 0,variant:x?"labelValue":"sectionHeader",children:t}),(0,n.jsx)(l.FontAwesomeIcon,{className:"text-gray-500",icon:p?s.mTx:s.ptq,size:"sm"})]});return(0,n.jsxs)("div",{className:"border border-gray-200 rounded-lg overflow-hidden ".concat(c),children:[!!u&&(0,n.jsx)(u||"h3",{className:"m-0",children:h}),!u&&h,!!p&&(0,n.jsx)("div",{className:"".concat(x?"px-4 py-3":"px-4 py-4"," bg-white"),children:a})]})};c.propTypes={title:i().string.isRequired,children:i().node.isRequired,defaultExpanded:i().bool,variant:i().oneOf(["default","compact"]),className:i().string,headingLevel:i().oneOf(["h2","h3","h4"])},c.defaultProps={defaultExpanded:!1,variant:"default",className:""},t.Z=c},17047:function(e,t,a){"use strict";var n=a(52322),s=a(2784),l=a(94217);a(56486);var r=a(47023),i=a(59578),d=a(42369),o=a(76467);let c=e=>{let{onClose:t,handler:a,preOnCloseFn:l,title:c,message:u,details:p,confirmButtonText:m,cancelButtonText:x,initialIsLoading:h,suppressRecording:f}
1=e,[g,b]=(0,s.useState)(!1),j=h||g,y=(0,s.useCallback)(async()=>{b(!0);try{await a(),l(),t()}catch(e){b(!1),(0,i.N2)(e,"ConfirmDialogContent")}},[a,l,t]),v=(0,s.useCallback)(()=>{g||(l(),t())},[g,l,t]);return(0,n.jsxs)("div",{className:"confirm-dialog flex flex-col bg-white py-3 px-3 sm:py-4 sm:px-4 rounded shadow-sm relative".concat(f?" ".concat("fs-exclude"):""),"data-hj-suppress":f||void 0,"data-hs-do-not-collect":f?"true":void 0,children:[!!j&&(0,n.jsx)(d.J,{fixed:!1,size:"sm"}),(0,n.jsx)("div",{className:"w-full border-gray-200",children:(0,n.jsx)(o.Z,{className:"leading-none",variant:"heading5",children:c})}),(0,n.jsx)("hr",{className:"-mx-3 sm:-mx-4 my-2 sm:my-3"}),(0,n.jsxs)("div",{className:"w-full py-2",children:[(0,n.jsx)(o.Z,{variant:"body",children:u}),!!p&&(0,n.jsx)(o.Z,{className:"mt-2 break-all",color:"text-gray-600",variant:"caption",children:p})]}),(0,n.jsx)("hr",{className:"-mx-3 sm:-mx-4 my-2 sm:my-3"}),(0,n.jsxs)("div",{className:"w-full flex flex-col-reverse sm:flex-row sm:justify-between gap-2 border-gray-200",children:[(0,n.jsx)(r.Z,{className:"w-full sm:w-auto",design:"secondary",disabled:g,onClick:v,children:x}),(0,n.jsx)(r.Z,{className:"w-full sm:w-auto",design:"primary",disabled:g,isLoading:g,onClick:y,children:m})]})]})};t.Z=e=>{let{handler:t,preOnCloseFn:a=()=>{},title:s="Are you sure?",message:r="It may not be possible to undo this action. Are you sure you want to proceed?",details:i="",confirmButtonText:d="Yes, Proceed.",cancelButtonText:o="No, Let me check.",canExit:u=!0,isLoading:p=!1,suppressRecording:m=!1}=e;(0,l._1)({closeOnEscape:u,closeOnClickOutside:u,customUI:e=>{let{onClose:l}=e;return(0,n.jsx)(c,{cancelButtonText:o,confirmButtonText:d,details:i,handler:t,initialIsLoading:p,message:r,onClose:l,preOnCloseFn:a,suppressRecording:m,title:s})}})}},62372:function(e,t,a){"use strict";a.d(t,{K:function(){return d}});var n=a(52322);a(2784);var s=a(13980),l=a.n(s),r=a(12524),i=a.n(r);let d=e=>{let{label:t,placeholder:a,name:s,error:l,rows:r,onChange:d,value:o,defaultValue:c,className:u,onKeyUp:p,onKeyDownHandler:m,onBlur:x,disabled:h,required:f=!1}=e,g=i()("block","text-sm","font-medium","tracking-wide","mb-1",{"text-gray-700":!l,"text-red-400":l}),b=i()("appearance-none","w-full","px-3","py-2","text-gray-700","bg-white","border","rounded-lg","leading-tight","transition-colors","duration-200","focus:outline-none","focus:ring-2","focus:ring-blue-500","focus:border-transparent","disabled:bg-gray-100","disabled:text-gray-500","disabled:cursor-not-allowed",{"border-gray-300":!l,"border-red-400":l,"focus:ring-red-500":l},u);return(0,n.jsxs)(n.Fragment,{children:[!!t&&(0,n.jsxs)("label",{className:g,htmlFor:s,children:[t,!!f&&(0,n.jsx)("span",{className:"text-red-400 text-xs ml-1",children:"*"})]}),(0,n.jsx)("textarea",{className:b,defaultValue:c,disabled:h,id:s,name:s,onBlur:x,onChange:d,onKeyDown:m,onKeyUp:p,placeholder:a,required:f,rows:r,value:o}),!!l&&(0,n.jsx)("span",{className:"text-red-400 text-xs mt-1 block",children:l})]})};d.propTypes={label:l().string,value:l().string,placeholder:l().string,name:l().string.isRequired,rows:l().number,error:l().string,onChange:l().func.isRequired,defaultValue:l().string,className:l().string,onKeyUp:l().func,onKeyDownHandler:l().func,onBlur:l().func,disabled:l().bool,required:l().bool}},91516:function(e,t,a){"use strict";a.d(t,{Z:function(){return m}});var n=a(7896),s=a(2784),l=a(26202),r=a(88137),i=a(56666),d=a(33028),o=a(76854),c=a(59740),u=a(407),p=["defaultOptions","cacheOptions","loadOptions","options","isLoading","onInputChange","filterOption"];a(28316),a(84337);var m=(0,s.forwardRef)(function(e,t){var a,m,x,h,f,g,b,j,y,v,_,N,w,C,Z,S,A,k,P,R,T,q,E,I,O,D,F,L,V,B,z,M,U,G,K,W,J,X,H,Q,Y,$,ee,et,ea,en,es,el,er,ei,ed,eo=(m=void 0!==(a=e.defaultOptions)&&a,h=void 0!==(x=e.cacheOptions)&&x,f=e.loadOptions,e.options,g=e.isLoading,b=e.onInputChange,j=e.filterOption,v=(y=(0,c.Z)(e,p)).inputValue,_=(0,s.useRef)(void 0),N=(0,s.useRef)(!1),w=(0,s.useState)(Array.isArray(m)?m:void 0),Z=(C=(0,o.Z)(w,2))[0],S=C[1],A=(0,s.useState)(void 0!==v?v:""),P=(k=(0,o.Z)(A,2))[0],R=k[1],T=(0,s.use
1State)(!0===m),E=(q=(0,o.Z)(T,2))[0],I=q[1],O=(0,s.useState)(void 0),F=(D=(0,o.Z)(O,2))[0],L=D[1],V=(0,s.useState)([]),z=(B=(0,o.Z)(V,2))[0],M=B[1],U=(0,s.useState)(!1),K=(G=(0,o.Z)(U,2))[0],W=G[1],J=(0,s.useState)({}),H=(X=(0,o.Z)(J,2))[0],Q=X[1],Y=(0,s.useState)(void 0),ee=($=(0,o.Z)(Y,2))[0],et=$[1],ea=(0,s.useState)(void 0),es=(en=(0,o.Z)(ea,2))[0],el=en[1],h!==es&&(Q({}),el(h)),m!==ee&&(S(Array.isArray(m)?m:void 0),et(m)),(0,s.useEffect)(function(){return N.current=!0,function(){N.current=!1}},[]),er=(0,s.useCallback)(function(e,t){if(!f)return t();var a=f(e,t);a&&"function"==typeof a.then&&a.then(t,function(){return t()})},[f]),(0,s.useEffect)(function(){!0===m&&er(P,function(e){N.current&&(S(e||[]),I(!!_.current))})},[]),ei=(0,s.useCallback)(function(e,t){var a=(0,u.L)(e,t,b);if(!a){_.current=void 0,R(""),L(""),M([]),I(!1),W(!1);return}if(h&&H[a])R(a),L(a),M(H[a]),I(!1),W(!1);else{var n=_.current={};R(a),I(!0),W(!F),er(a,function(e){N&&n===_.current&&(_.current=void 0,I(!1),L(a),M(e||[]),W(!1),Q(e?(0,d.Z)((0,d.Z)({},H),{},(0,i.Z)({},a,e)):H))})}},[h,er,F,H,b]),ed=K?[]:P&&F?z:Z||[],(0,d.Z)((0,d.Z)({},y),{},{options:ed,isLoading:E||void 0!==g&&g,onInputChange:ei,filterOption:void 0===j?null:j})),ec=(0,r.u)(eo);return s.createElement(l.S,(0,n.Z)({ref:t},ec))})}},function(e){e.O(0,[4976,5351,9603,6383,1985,9436,9400,7568,974,1282,2370,4806,8359,2888,9774,179],function(){return e(e.s=9261)}),_N_E=e.O()}]);

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.