UNPKG

@accounter/client

Version:
1 lines 42.7 kB
import{a as e,c as t,i as n,r}from"./charges-table-DUk3RSMw.js";import{t as i}from"./circle-check-DRHc8FcU.js";import{n as a,r as o,t as s}from"./upload-Cg7lggvI.js";import{Aa as c,Ai as l,Al as u,An as d,Bl as f,Br as p,Bs as m,Cc as h,Cu as g,Dn as _,Du as v,En as y,Gr as b,Hl as x,Hs as S,Hu as C,Ic as w,Id as T,Is as E,Kt as D,Lc as O,Ls as k,Ma as A,Ml as j,Na as ee,No as te,Oa as ne,On as M,Pt as re,Rl as N,Td as ie,Ul as ae,Vl as oe,Vs as se,Wl as P,Wr as ce,Xr as le,Ys as ue,Zs as de,Zu as F,_d as fe,_i as I,aa as pe,ad as me,b as he,dd as L,di as R,er as ge,ga as _e,hi as ve,ii as ye,in as be,ja as xe,jd as Se,ji as Ce,ka as z,ki as B,kl as V,kn as we,md as Te,nd as H,ni as Ee,pd as De,ra as Oe,rd as ke,sd as Ae,tr as je,ud as Me,ui as Ne,vi as U,wc as Pe,wd as Fe,x as Ie,xa as Le,yd as Re,zl as W,zs as ze}from"./index-DUZECcXr.js";import{t as Be}from"./page-layout-BfWJC_SV.js";import{n as Ve}from"./charges-ledger-validation-C7mNRXa3.js";var He=Re(`circle-plus`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M8 12h8`,key:`1wcyev`}],[`path`,{d:`M12 8v8`,key:`napkw2`}]]),Ue=Re(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),We=Re(`users`,[[`path`,{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`,key:`1yyitq`}],[`path`,{d:`M16 3.128a4 4 0 0 1 0 7.744`,key:`16gr8j`}],[`path`,{d:`M22 21v-2a4 4 0 0 0-3-3.87`,key:`kshegd`}],[`circle`,{cx:`9`,cy:`7`,r:`4`,key:`nufk8`}]]),Ge=Object.defineProperty,Ke=Object.defineProperties,qe=Object.getOwnPropertyDescriptors,Je=Object.getOwnPropertySymbols,Ye=Object.prototype.hasOwnProperty,Xe=Object.prototype.propertyIsEnumerable,Ze=(e,t,n)=>t in e?Ge(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qe=(e,t)=>{for(var n in t||={})Ye.call(t,n)&&Ze(e,n,t[n]);if(Je)for(var n of Je(t))Xe.call(t,n)&&Ze(e,n,t[n]);return e},$e=(e,t)=>Ke(e,qe(t)),et=[`filled`,`light`,`subtle`];function tt({theme:e,variant:t,color:n}){if(!et.includes(t))return null;let r=e.fn.variant({variant:t,color:n});return{"&[data-active]":Qe({backgroundColor:r.background,color:r.color},e.fn.hover({backgroundColor:r.hover}))}}var nt=Ee((e,{noWrap:t,childrenOffset:n,alignIcon:r,color:i},{variant:a})=>({root:$e(Qe(Qe({display:`flex`,alignItems:`center`,width:`100%`,padding:`${R(8)} ${e.spacing.sm}`,userSelect:`none`},tt({theme:e,variant:a,color:i})),e.fn.hover({backgroundColor:e.colorScheme===`dark`?e.colors.dark[6]:e.colors.gray[0]})),{"&[data-disabled]":{opacity:.4,pointerEvents:`none`}}),icon:{marginRight:e.spacing.sm,display:`flex`,justifyContent:`center`,alignItems:`center`,alignSelf:r===`center`?`center`:`flex-start`,paddingTop:r===`center`?void 0:R(4)},rightSection:{marginLeft:e.spacing.sm,display:`flex`,justifyContent:`center`,alignItems:`center`,transition:`transform 150ms ${e.transitionTimingFunction}`,"&[data-rotate]":{transform:`rotate(90deg)`}},body:{flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:t?`nowrap`:void 0},label:{},description:{display:`block`,"&[data-active]":{color:`inherit`}},children:{paddingLeft:Ne({size:n,sizes:e.spacing})}})),G=T(Se()),rt=Object.defineProperty,K=Object.getOwnPropertySymbols,it=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable,ot=(e,t,n)=>t in e?rt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,st=(e,t)=>{for(var n in t||={})it.call(t,n)&&ot(e,n,t[n]);if(K)for(var n of K(t))at.call(t,n)&&ot(e,n,t[n]);return e},ct=(e,t)=>{var n={};for(var r in e)it.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&K)for(var r of K(e))t.indexOf(r)<0&&at.call(e,r)&&(n[r]=e[r]);return n},lt={variant:`light`,childrenOffset:`lg`},ut=(0,G.forwardRef)((e,n)=>{let r=ye(`NavLink`,lt,e),{label:i,description:a,icon:o,rightSection:s,className:c,classNames:l,styles:u,unstyled:d,active:f,color:m,variant:h,noWrap:g,children:_,opened:v,defaultOpened:y,onChange:x,disableRightSectionRotation:S,childrenOffset:C,disabled:w,onClick:T}=r,E=ct(r,[`label`,`description`,`icon`,`rightSection`,`className`,`classNames`,`styles`,`unstyled`,`active`,`color`,`variant`,`noWrap`,`children`,`opened`,`defaultOpened`,`onChange`,`disableRightSectionRotation`,`childrenOffset`,`disabled`,`onClick`]),{classes:D,cx:O}=nt({color:m,noWrap:g,childrenOffset:C,alignIcon:a?`top`:`center`},{name:`NavLink`,classNames:l,styles:u,unstyled:d,variant:h}),[k,A]=le({value:v,defaultValue:y,finalValue:!1,onChange:x}),j=!!_;return G.createElement(G.Fragment,null,G.createElement(b,st({ref:n,className:O(D.root,c),"data-active":f||void 0,onClick:e=>{j?(e.preventDefault(),T?.(e),A(!k)):T?.(e)},unstyled:d,"data-expanded":k||void 0,"data-disabled":w||void 0,disabled:w},E),o&&G.createElement(`span`,{className:D.icon},o),G.createElement(`span`,{className:D.body},G.createElement(p,{component:`span`,size:`sm`,className:D.label},i),G.createElement(p,{component:`span`,color:`dimmed`,size:`xs`,"data-active":f||void 0,className:D.description},a)),(j||s)&&G.createElement(`span`,{className:D.rightSection,"data-rotate":k&&!S||void 0},j?s||G.createElement(ce,{width:R(14),height:R(14),style:{transform:`rotate(-90deg)`}}):s)),G.createElement(t,{in:k},G.createElement(`div`,{className:D.children},_)))});ut.displayName=`@mantine/core/NavLink`;var dt=ve(ut),ft=`setAnnualAuditStepStatus`,pt=()=>{let[{fetching:e},t]=V(Pe);return{fetching:e,setStepStatus:(0,G.useCallback)(async e=>{let{stepId:n,ownerId:r,year:i}=e.input,a=e.input.status===c.Completed,o=`Error updating step ${n} status`,s=`${ft}-${r}-${i}-${n}`;U.loading(a?`Marking as done...`:`Updating step status...`,{id:s});try{let n=I(await t(e),o,s);return n?(U.success(a?`Step marked as done`:`Step status updated`,{id:s}),n.setAnnualAuditStepStatus):void 0}catch(e){console.error(`${o}: ${e}`),U.error(`Error`,{id:s,description:o});return}},[t])}},q=g(),mt=e=>{switch(e){case`completed`:return(0,q.jsx)(i,{className:`h-5 w-5 text-green-600`});case`in-progress`:return(0,q.jsx)(Me,{className:`h-5 w-5 text-blue-600`});case`pending`:return(0,q.jsx)(Me,{className:`h-5 w-5 text-gray-400`});case`blocked`:return(0,q.jsx)(L,{className:`h-5 w-5 text-red-600`});case`loading`:return(0,q.jsx)(F,{className:`h-5 w-5 text-gray-400 animate-spin`})}},ht=e=>(0,q.jsx)(D,{variant:{completed:`default`,"in-progress":`secondary`,pending:`outline`,blocked:`destructive`,loading:`outline`}[e],children:{completed:`Completed`,"in-progress":`In Progress`,pending:`Pending`,blocked:`Blocked`,loading:`Loading...`}[e]}),gt=({children:e,ref:t,level:n})=>(0,q.jsx)(`div`,{ref:t,className:`${n>0?`ml-6 border-l-2 border-gray-200 pl-4`:``} relative`,children:e});function J({id:e,ref:t,title:n,description:r,icon:i,status:a,statusIndicator:o,actions:s,children:c,footer:l,isExpanded:u,onToggleExpanded:d,level:p=0,disabled:m=!1,manualData:h}){let g=(0,G.useMemo)(()=>{if(Array.isArray(h))return h.find(t=>t.stepId===e)},[h,e])?.notes??null;return(0,q.jsxs)(gt,{ref:t,level:p,children:[(0,q.jsxs)(N,{className:`mb-4`,children:[(0,q.jsx)(x,{className:`pb-3`,children:(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[u==null?(0,q.jsx)(`div`,{className:`w-4`}):(0,q.jsx)(P,{disabled:m,variant:`ghost`,size:`sm`,onClick:d,className:`p-0 h-auto`,children:u?(0,q.jsx)(Te,{className:`h-4 w-4`}):(0,q.jsx)(De,{className:`h-4 w-4`})}),mt(a),i,(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(ae,{className:`text-lg`,children:[e,`. `,n]}),r&&(0,q.jsx)(f,{className:`mt-1`,children:r})]})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[o,ht(a)]})]})}),s&&s.length>0&&(0,q.jsx)(W,{className:`pt-0`,children:(0,q.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:s.map((e,t)=>(0,q.jsx)(P,{variant:`outline`,size:`sm`,disabled:e.disabled||m,onClick:e.onClick,asChild:!!e.href&&!m&&!e.disabled,children:e.href?(0,q.jsx)(`a`,{href:e.href,children:e.label}):e.label},t))})}),(l||g)&&(0,q.jsxs)(oe,{className:`flex flex-col gap-2 items-start`,children:[l,g&&(0,q.jsxs)(`div`,{className:`mt-2 text-sm text-muted-foreground`,children:[`Notes: `,g]})]}),c]}),m&&(0,q.jsx)(N,{className:`absolute inset-0 bg-gray-500 opacity-50 pointer-events-auto z-10 ${p>0?`ml-4`:``}`})]})}function Y(e){switch(e){case c.Completed:return`completed`;case c.InProgress:return`in-progress`;case c.Blocked:return`blocked`;default:return`pending`}}var _t=[c.Pending,c.InProgress,c.Completed];function X({ownerId:e,stepId:t,year:n,initialStatus:r,initialNotes:i,onSaved:a}){let[o,s]=(0,G.useState)(r??c.Pending),[l,u]=(0,G.useState)(i??``),{fetching:f,setStepStatus:p}=pt();(0,G.useEffect)(()=>{s(r??c.Pending)},[r]),(0,G.useEffect)(()=>{u(i??``)},[i]);let m=(0,G.useCallback)(async()=>{let r=await p({input:{ownerId:e,year:n,status:o,notes:l||null,stepId:t}});r&&a(Y(r.status))},[p,e,n,o,l,t,a]);return(0,q.jsxs)(N,{className:`mt-3 pl-4`,children:[(0,q.jsxs)(x,{className:`pb-2 pt-3 px-3`,children:[(0,q.jsx)(`div`,{className:`w-4`}),(0,q.jsx)(ae,{className:`text-lg`,children:`Accountant Approval`})]}),(0,q.jsxs)(W,{className:`px-3 pb-3 pt-0 space-y-4`,children:[(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(Ce,{className:`text-xs text-muted-foreground`,children:`Status`}),(0,q.jsxs)(y,{value:o,onValueChange:e=>s(e),children:[(0,q.jsx)(we,{className:`h-8 w-48 text-xs`,children:(0,q.jsx)(d,{})}),(0,q.jsx)(_,{children:_t.map(e=>(0,q.jsx)(M,{value:e,className:`text-xs`,children:e.replace(`_`,` `)},e))})]})]}),(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(Ce,{className:`text-xs text-muted-foreground`,children:`Notes (optional)`}),(0,q.jsx)(be,{value:l,onChange:e=>u(e.target.value),rows:2,className:`text-xs`,placeholder:`Add any review notes...`})]}),(0,q.jsx)(P,{size:`sm`,className:`w-fit`,disabled:f,onClick:m,children:f?`Saving...`:`Save Approval`})]})]})}function vt(e){let[t,n]=(0,G.useState)(`loading`),[r,i]=(0,G.useState)({approvedPercentage:0,pendingPercentage:0,unapprovedPercentage:100,totalCharges:1,approvedCount:0,pendingCount:0,unapprovedCount:1}),[a,o]=(0,G.useState)(!1),[s,c]=(0,G.useState)(!1),[d,f]=(0,G.useState)(void 0),{adminBusinessId:p,id:m,onStatusChange:h,year:g}=e,[{data:_,fetching:y,error:b},x]=u({query:Oe,variables:{fromDate:`${g}-01-01`,toDate:`${g}-12-31`},pause:!0}),S=(0,G.useCallback)(async()=>{await x()},[x]),C=(0,G.useMemo)(()=>{if(Array.isArray(e.manualData))return e.manualData.find(e=>e.stepId===m)},[e.manualData,m]),w=(0,G.useMemo)(()=>{let e=C?.status;if(e)return Y(e)},[C]);(0,G.useEffect)(()=>{p&&!w&&!y&&!_&&!b&&S()},[p,w,y,_,b,S]);let T=C?.notes??null;(0,G.useEffect)(()=>{w&&f(w)},[w]),(0,G.useEffect)(()=>{let e=d??t;h&&h(m,e),e===`completed`&&!s?c(!0):e!==`completed`&&s&&c(!1)},[t,d,h,m,s]),(0,G.useEffect)(()=>{p?y&&!w&&n(`loading`):n(`blocked`)},[p,y,w]),(0,G.useEffect)(()=>{if(_?.accountantApprovalStatus){let{totalCharges:e,approvedCount:t,pendingCount:r,unapprovedCount:a}=_.accountantApprovalStatus,o={approvedPercentage:t/e*100||0,pendingPercentage:r/e*100||0,unapprovedPercentage:a/e*100||0,totalCharges:e,approvedCount:t,pendingCount:r,unapprovedCount:a};i(o),o.pendingPercentage===0&&o.unapprovedPercentage===0?n(`completed`):o.pendingPercentage+o.unapprovedPercentage<30?n(`in-progress`):n(`pending`)}},[_]);let E=(0,G.useMemo)(()=>v.CHARGES.ALL({byOwners:p?[p]:void 0,fromAnyDate:`${g}-01-01`,toAnyDate:`${g}-12-31`,accountantStatus:[pe.Pending,pe.Unapproved],sortBy:{field:te.Date,asc:!1}}),[p,g]),O=(0,G.useMemo)(()=>w?[{label:`Review Charges`,href:E},{label:`Revalidate`,onClick:S,disabled:y}]:[{label:`Review Charges`,href:E}],[w,E,S,y]),k=d??t,A=d&&d!==t;return(0,q.jsx)(J,{...e,status:k,statusIndicator:y?(0,q.jsx)(F,{className:`h-5 w-5 animate-spin text-muted-foreground`}):A?(0,q.jsx)(D,{variant:`outline`,className:`text-xs border-blue-200 text-blue-700`,children:`Manual override`}):void 0,icon:(0,q.jsx)(ke,{className:`h-4 w-4`}),actions:O,isExpanded:a,footer:(0,q.jsxs)(`div`,{className:`w-full flex items-center gap-2 pt-2 border-t`,children:[(0,q.jsx)(`span`,{className:`text-sm font-medium`,children:`Charge Validation Details`}),(0,q.jsxs)(D,{variant:`outline`,className:`text-xs`,children:[r.pendingCount+r.unapprovedCount,` need attention`]})]}),onToggleExpanded:()=>o(e=>!e),children:(0,q.jsx)(B,{open:a,children:(0,q.jsxs)(l,{children:[(0,q.jsx)(W,{className:`pt-0`,children:(0,q.jsxs)(`div`,{className:`space-y-4`,children:[(0,q.jsxs)(`div`,{className:`space-y-3`,children:[(0,q.jsxs)(`div`,{className:`flex justify-between items-center text-sm`,children:[(0,q.jsx)(`span`,{className:`font-medium`,children:`Charge Review Progress`}),(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsxs)(`span`,{className:`text-muted-foreground`,children:[r.totalCharges.toLocaleString(),` total charges`]}),(0,q.jsx)(P,{variant:`ghost`,size:`sm`,onClick:S,disabled:t===`loading`,children:`Refresh`})]})]}),(0,q.jsxs)(`div`,{className:`relative h-6 bg-gray-200 rounded-full overflow-hidden`,children:[(0,q.jsx)(`div`,{className:`absolute left-0 top-0 h-full bg-green-500 transition-all duration-300`,style:{width:`${r.approvedPercentage}%`}}),(0,q.jsx)(`div`,{className:`absolute top-0 h-full bg-orange-500 transition-all duration-300`,style:{left:`${r.approvedPercentage}%`,width:`${r.pendingPercentage}%`}}),(0,q.jsx)(`div`,{className:`absolute top-0 h-full bg-red-500 transition-all duration-300`,style:{left:`${r.approvedPercentage+r.pendingPercentage}%`,width:`${r.unapprovedPercentage}%`}})]}),(0,q.jsxs)(`div`,{className:`grid grid-cols-3 gap-4 text-sm`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`div`,{className:`w-3 h-3 bg-green-500 rounded-full`}),(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`div`,{className:`font-medium text-green-700`,children:[`Approved (`,r.approvedPercentage.toFixed(2),`%)`]}),(0,q.jsxs)(`div`,{className:`text-xs text-muted-foreground`,children:[r.approvedCount.toLocaleString(),` charges`]})]})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`div`,{className:`w-3 h-3 bg-orange-500 rounded-full`}),(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`div`,{className:`font-medium text-orange-700`,children:[`Pending (`,r.pendingPercentage.toFixed(2),`%)`]}),(0,q.jsxs)(`div`,{className:`text-xs text-muted-foreground`,children:[r.pendingCount.toLocaleString(),` charges`]})]})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`div`,{className:`w-3 h-3 bg-red-500 rounded-full`}),(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`div`,{className:`font-medium text-red-700`,children:[`Unapproved (`,r.unapprovedPercentage.toFixed(2),`%)`]}),(0,q.jsxs)(`div`,{className:`text-xs text-muted-foreground`,children:[r.unapprovedCount.toLocaleString(),` charges`]})]})]})]})]}),(r.pendingPercentage>0||r.unapprovedPercentage>0)&&(0,q.jsxs)(`div`,{className:`flex items-center gap-2 p-3 bg-orange-50 rounded-lg border border-orange-200`,children:[(0,q.jsx)(L,{className:`h-4 w-4 text-orange-600`}),(0,q.jsxs)(`span`,{className:`text-sm text-orange-800`,children:[r.pendingCount+r.unapprovedCount,` charges need review before proceeding`]})]})]})}),p&&(0,q.jsx)(`div`,{className:`px-6 pb-4 pt-2 border-t`,children:(0,q.jsx)(X,{ownerId:p,year:g,stepId:m,initialStatus:C?.status??void 0,initialNotes:T,onSaved:e=>f(e)})})]})})})}function yt(e){let[t,n]=(0,G.useState)(`blocked`),[r,i]=(0,G.useState)(1/0),[o,s]=(0,G.useState)(!1),[c,d]=(0,G.useState)(void 0),{year:f,adminBusinessId:p,onStatusChange:m,id:h}=e,[{data:g,fetching:_,error:v},y]=u({query:de,variables:{filters:{byOwners:p?[p]:[],fromAnyDate:`${f}-01-01`,toAnyDate:`${f}-12-31`}},pause:!0}),b=(0,G.useMemo)(()=>{if(Array.isArray(e.manualData))return e.manualData.find(e=>e.stepId===h)},[e.manualData,h]),x=(0,G.useMemo)(()=>{let e=b?.status;if(e)return Y(e)},[b]),S=b?.notes??null;(0,G.useEffect)(()=>{x&&d(x)},[x]),(0,G.useEffect)(()=>{m&&m(h,c??t)},[t,c,m,h]),(0,G.useEffect)(()=>{!g&&!_&&!v&&p&&!x&&y()},[g,_,v,p,x,y]),(0,G.useEffect)(()=>{_&&n(`loading`)},[_]),(0,G.useEffect)(()=>{if(g?.chargesWithLedgerChanges){let e=g.chargesWithLedgerChanges.filter(e=>!!e.charge?.id).length;i(e),n(e===0?`completed`:`in-progress`)}},[g]);let w=(0,G.useMemo)(()=>Ve({byOwners:p?[p]:void 0,fromAnyDate:`${f}-01-01`,toAnyDate:`${f}-12-31`,sortBy:{field:te.Date,asc:!1}}),[p,f]),T=(0,G.useMemo)(()=>x?[{label:`View Ledger Status`,href:w},{label:`Revalidate`,onClick:y,disabled:_}]:[{label:`View Ledger Status`,href:w}],[x,w,y,_]),E=c??t,O=c&&c!==t;return(0,q.jsxs)(J,{...e,status:E,statusIndicator:_?(0,q.jsx)(F,{className:`h-5 w-5 animate-spin text-muted-foreground`}):O?(0,q.jsx)(D,{variant:`outline`,className:`text-xs border-blue-200 text-blue-700`,children:`Manual override`}):void 0,icon:(0,q.jsx)(C,{className:`h-4 w-4`}),actions:T,isExpanded:o,onToggleExpanded:()=>s(e=>!e),children:[r>0&&!x&&(0,q.jsx)(W,{className:`p-2 border-t`,children:_?(0,q.jsxs)(`div`,{className:`flex items-center gap-2 p-2 bg-gray-50 rounded-lg border border-gray-200 animate-pulse`,children:[(0,q.jsx)(C,{className:`h-4 w-4 text-gray-400`}),(0,q.jsx)(`div`,{className:`flex-1`,children:(0,q.jsx)(`span`,{className:`text-sm text-gray-600 font-medium`,children:`Checking for pending ledger changes...`})})]}):(0,q.jsxs)(`div`,{className:`flex items-center gap-2 p-3 bg-red-50 rounded-lg border border-red-200`,children:[(0,q.jsx)(a,{className:`h-4 w-4 text-red-600`}),(0,q.jsx)(`div`,{className:`flex-1`,children:(0,q.jsx)(`span`,{className:`text-sm text-red-800 font-medium`,children:r===1/0?`Trigger revalidation manually`:`${r} pending ledger change${r>1?`s`:``} detected`})}),(0,q.jsx)(D,{variant:`destructive`,className:`text-xs`,children:`Action Required`})]})}),(0,q.jsx)(B,{open:o,children:(0,q.jsx)(l,{children:p&&(0,q.jsx)(`div`,{className:`px-6 pb-4 pt-2 border-t`,children:(0,q.jsx)(X,{ownerId:p,year:f,stepId:h,initialStatus:b?.status??void 0,initialNotes:S,onSaved:e=>d(e)})})})})]})}function bt({year:e,adminBusinessId:t,balanceChargeId:n}){let r=v.REPORTS.DYNAMIC_REPORT({fromDate:`${e-1}-01-01`,toDate:`${e-1}-12-31`,ownerIds:[t]}),[i,a]=(0,G.useState)(!1);return(0,q.jsx)(J,{id:`3a`,title:`Enter Opening Balances`,description:`Create a balance charge and save the opening balance snapshot template to import prior-year balances`,status:n?`completed`:`pending`,level:1,actions:[n?{label:`Balance Charge`,href:v.CHARGES.DETAIL(n)}:{label:`Create Balance Charge`,onClick:()=>a(!0)},{label:`Upload Dynamic Report`,href:r,disabled:!0}],disabled:!1,manualData:[],children:(0,q.jsx)(Ie,{open:i,onOpenChange:a,onClose:()=>a(!1)})})}function xt(t){let[i,a]=(0,G.useState)(!1),[o,s]=(0,G.useState)(null),{adminBusinessId:c,id:d,onStatusChange:f,year:p}=t,[{data:m,fetching:h,error:g}]=u({query:ne,variables:{ownerId:c,year:p},pause:!c}),_=(0,G.useMemo)(()=>{if(Array.isArray(t.manualData))return t.manualData.find(e=>e.stepId===d)},[t.manualData,d]),y=(0,G.useMemo)(()=>{let e=_?.status;if(e)return Y(e)},[_]),b=_?.notes??null;(0,G.useEffect)(()=>{s(y??null)},[y]);let x=(0,G.useMemo)(()=>c?h?`loading`:g||!m?.annualAuditOpeningBalanceStatus?`pending`:Y(m.annualAuditOpeningBalanceStatus.derivedStatus):`blocked`,[c,h,g,m]),S=o??x;(0,G.useEffect)(()=>{f?.(d,S)},[S,f,d]);let C=m?.annualAuditOpeningBalanceStatus;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(J,{...t,status:S,icon:(0,q.jsx)(fe,{className:`h-4 w-4`}),isExpanded:i,onToggleExpanded:()=>a(!i)}),c&&(0,q.jsx)(B,{open:i,children:(0,q.jsxs)(l,{className:`space-y-2 pt-2`,children:[C?.userType===z.Error&&(0,q.jsxs)(r,{variant:`destructive`,className:`ml-8`,children:[(0,q.jsx)(L,{className:`h-4 w-4`}),(0,q.jsx)(e,{children:`Configuration Error`}),(0,q.jsx)(n,{children:C.errorMessage})]}),C?.userType===z.New&&(0,q.jsxs)(r,{className:`ml-8`,children:[(0,q.jsx)(Ue,{className:`h-4 w-4`}),(0,q.jsx)(e,{children:`No Opening Balance Required`}),(0,q.jsx)(n,{children:`First year of both business establishment and Accounter usage — opening balance is not required.`})]}),!C&&!h&&(0,q.jsxs)(r,{className:`ml-8`,children:[(0,q.jsx)(Ue,{className:`h-4 w-4`}),(0,q.jsx)(e,{children:`Configuration Incomplete`}),(0,q.jsxs)(n,{children:[`Could not determine user type. Please verify `,(0,q.jsx)(`strong`,{children:`initialAccounterYear`}),` `,`and `,(0,q.jsx)(`strong`,{children:`dateEstablished`}),` are set in Settings › Admin Context.`]})]}),C?.userType===z.Migrating&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(bt,{year:p,adminBusinessId:c,balanceChargeId:C.balanceChargeId??null}),(0,q.jsx)(`div`,{className:`pl-8`,children:(0,q.jsx)(X,{ownerId:c,year:p,stepId:t.id,initialStatus:_?.status,initialNotes:b,onSaved:s})})]}),C?.userType===z.Continuing&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(r,{className:`ml-8`,children:[(0,q.jsx)(Ue,{className:`h-4 w-4`}),(0,q.jsx)(e,{children:`Verify Prior-Year Closing Balance`}),(0,q.jsx)(n,{className:`pb-4`,children:`Prior-year closing balances are already in the system. Review the prior-year data and approve once confirmed.`}),(0,q.jsxs)(`a`,{href:v.REPORTS.TRIAL_BALANCE({toDate:`${p-1}-12-31`,ownerIds:[c]}),target:`_blank`,rel:`noreferrer`,onClick:e=>e.stopPropagation(),className:`text-sm text-primary underline-offset-4 hover:underline`,children:[`View prior-year (`,p-1,`) trial balance →`]})]}),(0,q.jsx)(`div`,{className:`pl-8`,children:(0,q.jsx)(X,{ownerId:c,year:p,stepId:t.id,initialStatus:_?.status,initialNotes:b,onSaved:s})})]})]})})]})}var St=({chargeId:e,label:t})=>(0,q.jsx)(dt,{label:t,onClick:t=>{t.stopPropagation(),window.open(v.CHARGES.DETAIL(e),`_blank`,`noreferrer`)}},e),Z=function(e){return e.Revaluation=`Revaluation`,e.BankDeposits=`BankDeposits`,e.TaxExpenses=`TaxExpenses`,e.Depreciation=`Depreciation`,e.RecoveryReserve=`RecoveryReserve`,e.VacationReserve=`VacationReserve`,e}({}),Ct=`generateFinancialCharge`,wt=()=>{let[{fetching:e},t]=V(m),[{fetching:n},r]=V(E),[{fetching:i},a]=V(se),[{fetching:o},s]=V(k),[{fetching:c},l]=V(ze),[{fetching:u},d]=V(S);return{fetching:e||n||i||o||c||u,generateFinancialCharge:(0,G.useCallback)(async e=>{let{type:n,...i}=e,o=`Error generating financial charge [${n}]`,c=`${Ct}-${n}`;U.loading(`Generating financial charge`,{id:c});let u;try{switch(n){case`Revaluation`:u=await t(i).then(e=>I(e,o,c)?.generateRevaluationCharge);break;case`BankDeposits`:u=await r(i).then(e=>I(e,o,c)?.generateBankDepositsRevaluationCharge);break;case`TaxExpenses`:u=await a(i).then(e=>I(e,o,c)?.generateTaxExpensesCharge);break;case`Depreciation`:u=await s(i).then(e=>I(e,o,c)?.generateDepreciationCharge);break;case`RecoveryReserve`:u=await l(i).then(e=>I(e,o,c)?.generateRecoveryReserveCharge);break;case`VacationReserve`:u=await d(i).then(e=>I(e,o,c)?.generateVacationReserveCharge);break;default:throw Error(`Unknown financial charge type: ${n}`)}if(u?.id)return U.success(`Success`,{id:c,description:St({chargeId:u.id,label:`New ${n} charge created`})}),!0}catch(e){return console.error(`${o}: ${e}`),U.error(`Error`,{id:c,description:o,duration:1e5,closeButton:!0}),!1}return!1},[r,s,l,t,a,d])}},Tt=[{key:`revaluationCharge`,label:`Revaluation Charge`,generateType:Z.Revaluation,required:!0},{key:`taxExpensesCharge`,label:`Tax Expenses Charge`,generateType:Z.TaxExpenses,required:!0},{key:`bankDepositsRevaluationCharge`,label:`Bank Deposits Revaluation Charge`,generateType:Z.BankDeposits,required:!1},{key:`depreciationCharge`,label:`Depreciation Charge`,generateType:Z.Depreciation,required:!1},{key:`recoveryReserveCharge`,label:`Recovery Reserve Charge`,generateType:Z.RecoveryReserve,required:!1},{key:`vacationReserveCharge`,label:`Vacation Reserve Charge`,generateType:Z.VacationReserve,required:!1}];function Et(e){let[t,n]=(0,G.useState)(`loading`),[r,a]=(0,G.useState)(!1),[o,s]=(0,G.useState)(void 0),{adminBusinessId:c,id:d,onStatusChange:f,year:p}=e,m=`${p}-12-31`,{fetching:h,generateFinancialCharge:g}=wt(),[{data:_,fetching:y,error:b},x]=u({query:ee,variables:{ownerId:c,year:m}}),S=(0,G.useMemo)(()=>{if(Array.isArray(e.manualData))return e.manualData.find(e=>e.stepId===d)},[e.manualData,d]),C=(0,G.useMemo)(()=>{let e=S?.status;if(e)return Y(e)},[S]),w=S?.notes??null;(0,G.useEffect)(()=>{C&&s(C)},[C]),(0,G.useEffect)(()=>{f&&f(d,o??t)},[t,o,f,d]);let T=(0,G.useMemo)(()=>{let e=_?.annualFinancialCharges;return Tt.map(t=>{let n=e?.[t.key]?.id;return{...t,chargeId:n,exists:!!n}})},[_]);(0,G.useEffect)(()=>{if(!c){n(`blocked`);return}if(y||h){n(`loading`);return}if(b||!_?.annualFinancialCharges){n(`blocked`);return}let e=T.filter(e=>e.required),t=e.filter(e=>e.exists).length;t===e.length?n(`completed`):n(t>0?`in-progress`:`pending`)},[c,T,_,b,y,h]);let E=(0,G.useCallback)(async e=>{c&&await g({type:e,ownerId:c,date:m})&&await x()},[c,g,x,m]),O=e=>e.exists?(0,q.jsx)(i,{className:`h-4 w-4 text-green-600`}):e.required?(0,q.jsx)(L,{className:`h-4 w-4 text-orange-600`}):(0,q.jsx)(L,{className:`h-4 w-4 text-gray-400`}),k=e=>e.exists?(0,q.jsx)(D,{variant:`default`,children:`Exists`}):e.required?(0,q.jsx)(D,{variant:`outline`,children:`Missing`}):(0,q.jsx)(D,{variant:`secondary`,children:`Optional`}),A=o??t,j=o&&o!==t;return(0,q.jsx)(J,{...e,status:A,statusIndicator:y?(0,q.jsx)(F,{className:`h-5 w-5 animate-spin text-muted-foreground`}):j?(0,q.jsx)(D,{variant:`outline`,className:`text-xs border-blue-200 text-blue-700`,children:`Manual override`}):void 0,isExpanded:r,onToggleExpanded:()=>a(e=>!e),children:c&&(0,q.jsx)(B,{open:r,children:(0,q.jsxs)(l,{children:[(0,q.jsx)(W,{className:`pt-0 border-t`,children:(0,q.jsx)(`div`,{className:`space-y-2 mt-3`,children:T.map(e=>(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-3 p-3 rounded-lg border bg-background`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[O(e),(0,q.jsx)(`span`,{className:`text-sm font-medium`,children:e.label}),k(e)]}),e.exists&&e.chargeId?(0,q.jsx)(P,{variant:`outline`,size:`sm`,asChild:!0,children:(0,q.jsx)(`a`,{href:v.CHARGES.DETAIL(e.chargeId),children:`View`})}):(0,q.jsxs)(P,{variant:`outline`,size:`sm`,onClick:()=>E(e.generateType),disabled:h||t===`loading`,children:[(0,q.jsx)(He,{className:`h-4 w-4 mr-1`}),`Generate`]})]},e.key))})}),c&&(0,q.jsx)(`div`,{className:`px-6 pb-4 pt-2 border-t`,children:(0,q.jsx)(X,{ownerId:c,year:p,stepId:d,initialStatus:S?.status??void 0,initialNotes:w,onSaved:e=>s(e)})})]})})})}function Dt(e){let[t,n]=(0,G.useState)(`pending`),[r,i]=(0,G.useState)(!1),{adminBusinessId:a,id:o,onStatusChange:s}=e,[{data:c}]=u({query:w,variables:{ownerId:a??``,year:e.year-1},pause:!a}),d=(0,G.useMemo)(()=>{let e=c?.annualAuditStepStatuses?.find(e=>e.stepId===`9`);if(!e?.evidence)return null;try{return JSON.parse(e.evidence).lockedTemplateName??null}catch{return null}},[c]),f=(0,G.useMemo)(()=>{if(Array.isArray(e.manualData))return e.manualData.find(e=>e.stepId===o)},[e.manualData,o]),p=(0,G.useMemo)(()=>{let e=f?.status;if(e)return Y(e)},[f]),m=f?.notes??null;(0,G.useEffect)(()=>{p&&n(p)},[p]),(0,G.useEffect)(()=>s?.(o,t),[t,s,o]);let h=(0,G.useMemo)(()=>[...d?[{label:`Balance Sheet`,href:v.REPORTS.DYNAMIC_REPORT({ownerIds:a?[a]:void 0,fromDate:`1900-01-01`,toDate:`${e.year}-12-31`,templateName:d})},{label:`Profit and Loss`,href:v.REPORTS.DYNAMIC_REPORT({ownerIds:a?[a]:void 0,fromDate:`${e.year}-01-01`,toDate:`${e.year}-12-31`,templateName:d})}]:[{label:`Create Dynamic Report Template`,href:v.REPORTS.DYNAMIC_REPORT()}],{label:`Trial Balance`,href:v.REPORTS.TRIAL_BALANCE({ownerIds:a?[a]:void 0,fromDate:`1900-01-01`,toDate:`${e.year}-12-31`,isShowZeroedAccounts:!0})},{label:`Review Tax Report`,href:v.REPORTS.TAX(e.year)}],[e.year,a,d]);return(0,q.jsx)(J,{...e,status:t,isExpanded:r,onToggleExpanded:()=>i(e=>!e),actions:h,children:a&&(0,q.jsx)(B,{open:r,children:(0,q.jsx)(l,{children:(0,q.jsx)(`div`,{className:`px-6 pb-4 pt-2 border-t`,children:(0,q.jsx)(X,{ownerId:a,year:e.year,stepId:o,initialStatus:f?.status??void 0,initialNotes:m,onSaved:e=>n(e)})})})})})}var Ot=`ledgerLock`,kt=()=>{let[{fetching:e},t]=V(ue);return{fetching:e,ledgerLock:(0,G.useCallback)(async e=>{let n=`Error locking ledger`,r=`${Ot}-${e.date}`;U.loading(`Locking ledger`,{id:r});try{let i=I(await t(e),n,r,`lockLedgerRecords`);if(i?.lockLedgerRecords)return U.success(`Success`,{id:r,description:`Payroll file added`}),i.lockLedgerRecords;throw Error(`Server error`)}catch(e){console.error(`${n}: ${e}`),U.error(`Error`,{id:r,description:n,duration:1e5,closeButton:!0})}return!1},[t])}};function At(e){let[t,n]=(0,G.useState)(`pending`),[r,i]=(0,G.useState)(!1),{fetching:a,ledgerLock:o}=kt(),{adminBusinessId:s,id:c,onStatusChange:l,year:d}=e,f=`${d}-12-31`,[{data:p,fetching:m},h]=u({query:_e,variables:{ownerId:s}});(0,G.useEffect)(()=>l?.(c,t),[t,l,c]),(0,G.useEffect)(()=>{m||a?n(`loading`):p?!p.adminContext?.ledgerLock||p.adminContext.ledgerLock<f?n(`pending`):n(`completed`):n(`blocked`)},[p,m,f,a]);let g=(0,G.useCallback)(async()=>{o({date:f}).then(()=>h())},[f,o,h]),{userContext:_}=(0,G.useContext)(je),v=_?.context.ledgerLock;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(J,{...e,status:t,actions:[{label:`Lock Ledger`,onClick:()=>i(!0),disabled:!!v&&v>=f}]}),(0,q.jsx)(re,{onConfirm:g,title:`Are you sure you want to lock all ledger records until ${j(new Date(f),`MMMM do, yyy`)}?`,open:r,setOpen:i})]})}var jt=`setAnnualAuditStep09Status`,Mt=()=>{let[{fetching:e},t]=V(h);return{fetching:e,setStep09Status:(0,G.useCallback)(async e=>{let n=`Error saving final dynamic report template selection`,r=`${jt}-${e.input.ownerId}-${e.input.year}`;U.loading(`Locking template...`,{id:r});try{let i=I(await t(e),n,r);if(i)return U.success(`Template locked`,{id:r,description:`"${e.input.templateName}" saved as the final dynamic report template`}),i.setAnnualAuditStep09Status}catch(e){console.error(`${n}: ${e}`),U.error(`Error`,{id:r,description:n});return}},[t])}};function Nt(e){let[t,n]=(0,G.useState)(`pending`),{adminBusinessId:r,id:i,onStatusChange:a,year:o}=e,{fetching:s,setStep09Status:l}=Mt(),[{data:f,fetching:p},m]=u({query:O,variables:{ownerId:r,year:o},pause:!r}),[{data:h,fetching:g}]=u({query:Le});(0,G.useEffect)(()=>a?.(i,t),[t,a,i]);let v=(0,G.useMemo)(()=>f?.annualAuditStepStatuses.find(e=>e.stepId===i),[f,i]),b=(0,G.useMemo)(()=>{if(!v?.evidence)return null;try{return JSON.parse(v.evidence).lockedTemplateName??null}catch{return null}},[v]);(0,G.useEffect)(()=>{r?p||g||s?n(`loading`):v?.status===c.Completed&&b?n(`completed`):n(`pending`):n(`blocked`)},[r,p,g,s,v,b]);let x=(0,G.useMemo)(()=>h?.allDynamicReports??[],[h]),S=(0,G.useMemo)(()=>x.filter(e=>!e.isLocked||e.name===b),[x,b]),C=(0,G.useCallback)(async e=>{r&&(await l({input:{ownerId:r,year:o,templateName:e}}),m())},[r,o,l,m]);return(0,q.jsx)(J,{...e,status:t,description:t===`completed`?`Final template: ${b}`:`Select the final dynamic report template to lock for this fiscal year`,children:r&&!g&&!p&&(0,q.jsx)(`div`,{className:`px-6 pb-4`,children:(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsxs)(y,{value:b??``,onValueChange:C,disabled:s,children:[(0,q.jsx)(we,{className:`w-[280px]`,children:(0,q.jsx)(d,{placeholder:`Select a report template...`})}),(0,q.jsx)(_,{children:S.length===0?(0,q.jsx)(M,{value:`__none__`,disabled:!0,children:`No unlocked templates available`}):S.map(e=>(0,q.jsx)(M,{value:e.name,children:e.name},e.id))})]}),b&&(0,q.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[`Saved: `,b]})]})})})}function Pt({stepId:e,adminBusinessId:t,year:n}){let[r,i]=(0,G.useState)(`pending`),{fetching:a,setStepStatus:o}=pt(),[{data:s,fetching:l},d]=u({query:xe,variables:{ownerId:t,year:n},pause:!t}),f=(0,G.useMemo)(()=>s?.annualAuditStepStatuses.find(t=>t.stepId===e),[s,e]);return(0,G.useEffect)(()=>{t?l||a?i(`loading`):f?.status===c.Completed?i(`completed`):i(`pending`):i(`blocked`)},[t,l,a,f]),{status:r,saving:a,fetchingStatus:l,handleMarkDone:(0,G.useCallback)(async()=>{t&&await o({input:{ownerId:t,year:n,stepId:e,status:c.Completed}})&&d()},[t,n,e,o,d]),handleUnmark:(0,G.useCallback)(async()=>{t&&await o({input:{ownerId:t,year:n,stepId:e,status:c.Pending}})&&d()},[t,n,e,o,d])}}function Q({stepId:e,adminBusinessId:t,year:n,linkLabel:r,linkHref:i,...a}){let{status:o,saving:s,fetchingStatus:c,handleMarkDone:l,handleUnmark:u}=Pt({stepId:e,adminBusinessId:t,year:n}),{onStatusChange:d,id:f}=a;return(0,G.useEffect)(()=>d?.(f,o),[o,d,f]),(0,q.jsx)(J,{...a,status:o,children:t&&!c&&(0,q.jsx)(`div`,{className:`px-6 pb-4`,children:(0,q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,q.jsx)(P,{variant:`outline`,size:`sm`,asChild:!0,children:(0,q.jsxs)(`a`,{href:i,target:`_blank`,rel:`noreferrer`,children:[(0,q.jsx)(me,{size:16,className:`mr-1.5`}),r]})}),o===`completed`?(0,q.jsx)(P,{variant:`ghost`,size:`sm`,disabled:s,onClick:u,children:`Unmark`}):(0,q.jsx)(P,{variant:`outline`,size:`sm`,disabled:s,onClick:l,children:`Mark as Done`})]})})})}function Ft({adminBusinessId:e,year:t,...n}){let r=`${t}-01-01`,i=`${t}-12-31`,a=(0,G.useMemo)(()=>v.REPORTS.TRIAL_BALANCE({fromDate:r,toDate:i,ownerIds:e?[e]:void 0}),[r,i,e]);return(0,q.jsx)(Q,{...n,stepId:`10`,adminBusinessId:e,year:t,description:`Download year-end trial balance CSV for future validations`,linkLabel:`Open Trial Balance Report`,linkHref:a})}function It({adminBusinessId:e,year:t,...n}){let r=(0,G.useMemo)(()=>v.REPORTS.DEPRECIATION(e?{year:t,financialEntityId:e}:{year:t}),[t,e]);return(0,q.jsx)(Q,{...n,stepId:`11`,adminBusinessId:e,year:t,description:`Review and export the final depreciation report for the year`,linkLabel:`Open Depreciation Report`,linkHref:r})}function Lt({adminBusinessId:e,year:t,...n}){let r=(0,G.useMemo)(()=>v.REPORTS.TAX(t),[t]);return(0,q.jsx)(Q,{...n,stepId:`13`,adminBusinessId:e,year:t,description:`Review and export the tax report for the year`,linkLabel:`Open Tax Report`,linkHref:r})}function Rt({adminBusinessId:e,year:t,...n}){let r=(0,G.useMemo)(()=>v.REPORTS.CORPORATE_TAX_RULING_COMPLIANCE(t),[t]);return(0,q.jsx)(Q,{...n,stepId:`14`,adminBusinessId:e,year:t,description:`For Yossi's review`,linkLabel:`Open Tax Compliance Report`,linkHref:r})}function $({defaultStatus:e=`pending`,actions:t=[],fetchStatus:n,onStatusChange:r,...i}){let[a,o]=(0,G.useState)(n?`loading`:e);return(0,G.useEffect)(()=>{o(e)},[e]),(0,G.useEffect)(()=>{r&&r(i.id,a)},[a,r,i.id]),(0,G.useEffect)(()=>{n&&n().then(o).catch(()=>o(`blocked`))},[n]),(0,q.jsx)(J,{...i,status:a,actions:t,onStatusChange:r})}var zt=2e3,Bt=new Date().getFullYear();function Vt(e,t,n){return Math.min(Math.max(e,t),n)}function Ht({value:e,onChange:t,minYear:n=zt,maxYear:r=Bt}){let i=typeof e==`number`?Vt(e,n,r):void 0,a=Array.from({length:r-n+1},(e,t)=>String(r-t));return(0,q.jsxs)(y,{value:i?String(i):void 0,onValueChange:e=>t(Number(e)),children:[(0,q.jsx)(we,{className:`w-full`,children:(0,q.jsx)(d,{placeholder:`Select year (${n}-${r})`})}),(0,q.jsx)(_,{children:a.map(e=>(0,q.jsx)(M,{value:e,children:e},e))})]})}var Ut=()=>{let{setFiltersContext:e}=(0,G.useContext)(ge),{userContext:t}=(0,G.useContext)(je),n=t?.context.adminBusinessId,{year:r}=ie(),i=Fe(),a=new Date().getFullYear(),c=a-1,l=r?Number(r):c,d=!Number.isNaN(l)&&l>=2e3&&l<=a,f=d?l:c;(0,G.useEffect)(()=>{d||i(v.WORKFLOWS.ANNUAL_AUDIT(c),{replace:!0})},[d,i,c]);let p=(0,G.useCallback)(e=>{e!==f&&i(v.WORKFLOWS.ANNUAL_AUDIT(e))},[f,i]);(0,G.useEffect)(()=>{e((0,q.jsx)(`div`,{className:`flex flex-row gap-x-5`,children:(0,q.jsx)(Ht,{value:f,onChange:p})}))},[f,e,p]);let[{data:m,fetching:h}]=u({query:A,variables:{ownerId:n,year:f},pause:!n}),g=!!(n&&h),_=(0,G.useRef)(new Map),[y,b]=(0,G.useState)(0),[S,w]=(0,G.useState)(`pending`),T=(0,G.useCallback)(()=>{let e=_.current.get(`1`),t=_.current.get(`2`),n=e===`completed`&&t===`completed`?`completed`:`pending`;_.current.get(`7`)!==n&&(_.current.set(`7`,n),w(n))},[]),E=(0,G.useCallback)((e,t)=>{if(_.current.get(e)!==t){_.current.set(e,t);let n=Array.from(_.current.values()).filter(e=>e===`completed`).length;b(n)}(e===`1`||e===`2`)&&T()},[T]),D=y/21*100,O=(0,G.useRef)(null),k=(0,G.useRef)(null);return(0,G.useEffect)(()=>{T()},[T]),d?(0,q.jsx)(Be,{title:`Annual Audit Flow - ${f}`,description:`Complete audit process for annual financial reporting and compliance`,children:(0,q.jsxs)(`div`,{className:`container mx-auto p-6 max-w-6xl`,children:[(0,q.jsx)(`div`,{className:`mb-8`,children:(0,q.jsxs)(N,{className:`mb-6`,children:[(0,q.jsx)(x,{children:(0,q.jsx)(ae,{className:`text-lg`,children:`Progress Overview`})}),(0,q.jsx)(W,{children:(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,q.jsx)(`span`,{children:`Completed Steps`}),(0,q.jsxs)(`span`,{children:[y,` of `,21]})]}),(0,q.jsx)(he,{value:D,className:`h-2`}),(0,q.jsxs)(`div`,{className:`text-xs text-muted-foreground`,children:[D.toFixed(1),`% Complete`]})]})})]})}),g?(0,q.jsx)(N,{children:(0,q.jsxs)(W,{className:`flex flex-col items-center justify-center gap-3 py-10`,children:[(0,q.jsx)(F,{className:`h-10 w-10 animate-spin text-muted-foreground`}),(0,q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading annual audit step statuses...`})]})}):(0,q.jsxs)(`div`,{className:`space-y-4`,children:[(0,q.jsx)(vt,{id:`1`,ref:O,year:f,adminBusinessId:n,title:`Validate All Charges`,description:`Ensure all charges of the year were reviewed, handle pending charges`,onStatusChange:E,manualData:m?.annualAuditStepStatuses}),(0,q.jsx)(yt,{id:`2`,ref:k,year:f,adminBusinessId:n,title:`Check Pending Ledger Changes`,description:`Ensure no pending ledger changes exist`,onStatusChange:E,manualData:m?.annualAuditStepStatuses}),(0,q.jsx)(xt,{id:`3`,year:f,adminBusinessId:n,title:`Verify Opening Balance`,description:`Handle opening balance verification based on user type`,onStatusChange:E,manualData:m?.annualAuditStepStatuses}),(0,q.jsx)(Et,{id:`4`,title:`Generate Financial Charges`,description:`Create various financial charges and reserves`,icon:(0,q.jsx)(fe,{className:`h-4 w-4`}),onStatusChange:E,manualData:m?.annualAuditStepStatuses,year:f,adminBusinessId:n}),(0,q.jsx)(Dt,{id:`5`,title:`Audit Main Process`,description:`Task management system for comprehensive audit checks`,icon:(0,q.jsx)(H,{className:`h-4 w-4`}),onStatusChange:E,manualData:m?.annualAuditStepStatuses,year:f,adminBusinessId:n}),(0,q.jsx)($,{id:`6`,title:`Add Shareholders Data (1214)`,description:`For 1214 report preparation`,icon:(0,q.jsx)(We,{className:`h-4 w-4`}),onStatusChange:E,manualData:m?.annualAuditStepStatuses,actions:[{label:`Manage Shareholders`,href:`/shareholders/manage`},{label:`Import Data`,href:`/shareholders/import`}]}),(0,q.jsx)($,{id:`7`,title:`Revalidate Pending Items`,description:`Ensure no charges approval or ledger regeneration pending`,icon:(0,q.jsx)(ke,{className:`h-4 w-4`}),onStatusChange:E,manualData:m?.annualAuditStepStatuses,defaultStatus:S,actions:[{label:`Check Pending Approvals`,onClick:()=>{O.current?.scrollIntoView({behavior:`smooth`,block:`start`})}},{label:`Ledger Status`,onClick:()=>{k.current?.scrollIntoView({behavior:`smooth`,block:`start`})}}]}),(0,q.jsx)(At,{id:`8`,title:`Lock Ledger`,description:`Lock ledger by records and by date`,year:f,icon:(0,q.jsx)(o,{className:`h-4 w-4`}),onStatusChange:E,manualData:m?.annualAuditStepStatuses}),(0,q.jsx)(Nt,{id:`9`,title:`Save Final Dynamic Report Template`,icon:(0,q.jsx)(H,{className:`h-4 w-4`}),year:f,adminBusinessId:n,onStatusChange:E,manualData:m?.annualAuditStepStatuses}),(0,q.jsx)(Ft,{id:`10`,title:`Export Year-end Trial Balance`,icon:(0,q.jsx)(Ae,{className:`h-4 w-4`}),year:f,adminBusinessId:n,onStatusChange:E,manualData:m?.annualAuditStepStatuses}),(0,q.jsx)(It,{id:`11`,title:`Generate Final Depreciation Report`,icon:(0,q.jsx)(H,{className:`h-4 w-4`}),year:f,adminBusinessId:n,onStatusChange:E,manualData:m?.annualAuditStepStatuses}),(0,q.jsx)($,{id:`12`,title:`Generate Financial Reports`,description:`With comparison numbers from last year`,icon:(0,q.jsx)(H,{className:`h-4 w-4`}),onStatusChange:E,manualData:m?.annualAuditStepStatuses,actions:[{label:`Generate Reports`,href:`/reports/financial`}]}),(0,q.jsx)(Lt,{id:`13`,title:`Generate Tax Report`,icon:(0,q.jsx)(H,{className:`h-4 w-4`}),year:f,adminBusinessId:n,onStatusChange:E,manualData:m?.annualAuditStepStatuses}),(0,q.jsx)(Rt,{id:`14`,title:`Generate Tax Compliance Reports`,icon:(0,q.jsx)(H,{className:`h-4 w-4`}),year:f,adminBusinessId:n,onStatusChange:E,manualData:m?.annualAuditStepStatuses}),(0,q.jsx)($,{id:`15`,title:`Generate Tax Compliance Report`,icon:(0,q.jsx)(H,{className:`h-4 w-4`}),onStatusChange:E,manualData:m?.annualAuditStepStatuses,actions:[{label:`Generate 973`,href:`/reports/973`},{label:`Generate 901א`,href:`/reports/901a`}]}),(0,q.jsx)($,{id:`16`,title:`Generate 6111 Report`,icon:(0,q.jsx)(H,{className:`h-4 w-4`}),onStatusChange:E,manualData:m?.annualAuditStepStatuses,actions:[{label:`Generate 6111`,href:v.REPORTS.SHAAM_6111}]}),(0,q.jsx)($,{id:`17`,title:`Generate Dividend Report 1214ב`,icon:(0,q.jsx)(H,{className:`h-4 w-4`}),onStatusChange:E,manualData:m?.annualAuditStepStatuses,actions:[{label:`Generate Dividend Report`,href:`/reports/dividend-1214b`}]}),(0,q.jsx)($,{id:`18`,title:`Generate 1214 Report`,icon:(0,q.jsx)(H,{className:`h-4 w-4`}),onStatusChange:E,manualData:m?.annualAuditStepStatuses,actions:[{label:`Generate 1214`,href:`/reports/1214`}]}),(0,q.jsx)($,{id:`19`,title:`Compare Tax Expenses`,description:`Compare 1214 tax expenses with ledger tax expenses`,icon:(0,q.jsx)(fe,{className:`h-4 w-4`}),onStatusChange:E,manualData:m?.annualAuditStepStatuses,actions:[{label:`Compare Expenses`,href:`/tax/compare-expenses`}]}),(0,q.jsx)($,{id:`20`,title:`Signing Process`,description:`Handle signing process and accompanying documents`,icon:(0,q.jsx)(H,{className:`h-4 w-4`}),onStatusChange:E,manualData:m?.annualAuditStepStatuses,actions:[{label:`Prepare Documents`,href:`/signing/prepare`},{label:`Digital Signing`,href:`/signing/digital`}]}),(0,q.jsx)($,{id:`21`,title:`File Annual Report`,description:`Submit annual report to companies government office`,icon:(0,q.jsx)(s,{className:`h-4 w-4`}),onStatusChange:E,manualData:m?.annualAuditStepStatuses,actions:[{label:`Prepare Filing`,href:`/filing/prepare`},{label:`Submit Report`,href:`/filing/submit`}]})]}),(0,q.jsxs)(`div`,{className:`mt-8 p-4 bg-muted rounded-lg`,children:[(0,q.jsx)(`h3`,{className:`font-semibold mb-2`,children:`Quick Actions`}),(0,q.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,q.jsxs)(P,{variant:`outline`,size:`sm`,children:[(0,q.jsx)(Ae,{className:`h-4 w-4 mr-2`}),`Export Progress Report`]}),(0,q.jsxs)(P,{variant:`outline`,size:`sm`,children:[(0,q.jsx)(C,{className:`h-4 w-4 mr-2`}),`Configure Workflow`]}),(0,q.jsxs)(P,{variant:`outline`,size:`sm`,children:[(0,q.jsx)(ke,{className:`h-4 w-4 mr-2`}),`View All Reports`]})]})]})]})}):null};export{Ut as AnnualAuditFlow};