@accounter/client 0.0.8-alpha-20251030162303-87017b2c2addf0e61478260aac336b9343f15c98 → 0.0.8-alpha-20251031025517-bd142395bc1d7267ab00d6b53b116062b581b7d8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/CHANGELOG.md +49 -1
  2. package/dist/assets/{Checkbox-CLE7WylX.js → Checkbox-CMTNcrRo.js} +1 -1
  3. package/dist/assets/{MultiSelect-SsgUtHuW.js → MultiSelect-DP26KzMa.js} +1 -1
  4. package/dist/assets/{Progress-D7j8SJRp.js → Progress-C3jVWDXK.js} +1 -1
  5. package/dist/assets/{Table-DpZKU9e6.js → Table-c1ug6Rpw.js} +1 -1
  6. package/dist/assets/{Typography-DOCvIzjw.js → Typography-BC-9NaKB.js} +1 -1
  7. package/dist/assets/{YearPickerInput-BbyQMsmW.js → YearPickerInput-CNSe9Fno.js} +1 -1
  8. package/dist/assets/{accordion-KRd9M_7N.js → accordion-CLvZdMsA.js} +1 -1
  9. package/dist/assets/{accountant-approvals-BWkXiUJx.js → accountant-approvals-BbNBYszL.js} +1 -1
  10. package/dist/assets/{accounter-table-BvOYdMv2.js → accounter-table-C7UgjlTA.js} +1 -1
  11. package/dist/assets/{addDays-HTdY9JyJ.js → addDays-CB-j-d4t.js} +1 -1
  12. package/dist/assets/{all-charges-uOrXkSoe.js → all-charges-vuUUzmwW.js} +1 -1
  13. package/dist/assets/{arrow-up-down-D0e6luFS.js → arrow-up-down-DWlT-GED.js} +1 -1
  14. package/dist/assets/{building-2-BScQAy2y.js → building-2-Dkd3B-3N.js} +1 -1
  15. package/dist/assets/business-BuVKb8Oy.js +37 -0
  16. package/dist/assets/{business-extended-info-BPdDug4k.js → business-extended-info-B4Wt-Sq3.js} +1 -1
  17. package/dist/assets/{business-header-ScM944FH.js → business-header-BpYfBk40.js} +1 -1
  18. package/dist/assets/{business-ledger-filters-C6zdPVNQ.js → business-ledger-filters-ByAYFfgh.js} +1 -1
  19. package/dist/assets/{business-ledger-single-D_gxQY7c.js → business-ledger-single-cLd56KYs.js} +1 -1
  20. package/dist/assets/{business-trip-BD6qMULS.js → business-trip-BWUbbHEK.js} +1 -1
  21. package/dist/assets/{charge-CXgCTI2e.js → charge-DyLqPZn0.js} +1 -1
  22. package/dist/assets/{charges-filters-DhYogrgu.js → charges-filters-CUyYbpwk.js} +1 -1
  23. package/dist/assets/{charges-ledger-validation-K96Gpr99.js → charges-ledger-validation-Br2BBUCN.js} +1 -1
  24. package/dist/assets/{charges-table-Cff0tibm.js → charges-table-Cw-X1ZkK.js} +6 -6
  25. package/dist/assets/{chart-Rag7RVt5.js → chart-TrN24kVd.js} +1 -1
  26. package/dist/assets/contracts-CbwbCzFG.js +16 -0
  27. package/dist/assets/{data-table-pagination-BenxjRXY.js → data-table-pagination-BZmytrQe.js} +2 -2
  28. package/dist/assets/{download-csv-button-8ow10rSS.js → download-csv-button-r9hq7Mun.js} +1 -1
  29. package/dist/assets/{edit-issue-document-modal-2d_PTbvO.js → edit-issue-document-modal-aZgmep8e.js} +1 -1
  30. package/dist/assets/{editable-business-trip-BFJ_Mqji.js → editable-business-trip-BCj8haJN.js} +2 -2
  31. package/dist/assets/{eye-off-BNMLF-BO.js → eye-off-Cd4HW5Ki.js} +1 -1
  32. package/dist/assets/{funnel-DW3_rS_8.js → funnel-DlU6IKDd.js} +1 -1
  33. package/dist/assets/{index-4ufIi3AX.js → index-4Zj8Hp3W.js} +2 -2
  34. package/dist/assets/{index-2unHvdGT.js → index-BGcp3XaM.js} +1 -1
  35. package/dist/assets/{index-B0Je179L.js → index-BM_DgFX-.js} +1 -1
  36. package/dist/assets/{index-Bo2SK7RM.js → index-BnDJ3EgW.js} +1 -1
  37. package/dist/assets/{index-DyLWk3js.js → index-Bo91VSNv.js} +1 -1
  38. package/dist/assets/{index-BHA96r33.js → index-BovGiTUZ.js} +1 -1
  39. package/dist/assets/{index-1iKxq5ag.js → index-Bt94reMP.js} +2 -2
  40. package/dist/assets/index-BwqfmUGW.js +1 -0
  41. package/dist/assets/index-C4ozKIHg.js +1 -0
  42. package/dist/assets/{index-BPS5RB7_.js → index-CLyrvG5S.js} +1 -1
  43. package/dist/assets/{index-CKNxDyu9.js → index-CS2mkstk.js} +1 -1
  44. package/dist/assets/index-CsxUWF65.js +1 -0
  45. package/dist/assets/index-Cuu0j4Ul.js +1 -0
  46. package/dist/assets/{index-BDUyPP2c.js → index-DOzNNsNU.js} +1 -1
  47. package/dist/assets/{index-Bp6IHcih.js → index-DPLJ9sZn.js} +1 -1
  48. package/dist/assets/index-Dl3yi4zQ.js +1 -0
  49. package/dist/assets/{index-VD71ra9C.js → index-DmC4088R.js} +2 -2
  50. package/dist/assets/{index-B2VI47XT.js → index-DnkSW9Wf.js} +1 -1
  51. package/dist/assets/{index-lMXNkFuw.js → index-Dzi5mI80.js} +2 -2
  52. package/dist/assets/{index-Bd-SKdyy.js → index-UOt3vExk.js} +196 -196
  53. package/dist/assets/{index-BQyZXdTq.js → index-VYPC3lji.js} +2 -2
  54. package/dist/assets/index-Wu-q9oyp.js +1 -0
  55. package/dist/assets/{index-DvvRs9Ha.js → index-as7vp0Ty.js} +1 -1
  56. package/dist/assets/{index-BCiHeRl-.js → index-jFDc_D4d.js} +1 -1
  57. package/dist/assets/{index-CEiIgRJ2.js → index-jpqj1MvA.js} +7 -7
  58. package/dist/assets/{index.es-C9I2aTP4.js → index.es-CuvVRlqN.js} +1 -1
  59. package/dist/assets/{insert-business-trip-modal-DVcWpJHr.js → insert-business-trip-modal-DyHAvuG6.js} +2 -2
  60. package/dist/assets/issue-document-BvIvdS89.js +1 -0
  61. package/dist/assets/{list-plus-B7wBrICK.js → list-plus-CYtq--On.js} +1 -1
  62. package/dist/assets/login-page-DcZw6k7i.js +1 -0
  63. package/dist/assets/{match-document-modal-CqP2SE2c.js → match-document-modal-Bs-5Zbj9.js} +4 -4
  64. package/dist/assets/{missing-info-charges-CIs_kE3P.js → missing-info-charges-e6O9it1V.js} +1 -1
  65. package/dist/assets/{modal-CwuHXtxz.js → modal-CqL_DX_G.js} +1 -1
  66. package/dist/assets/modify-contract-dialog-C8WuljxW.js +1 -0
  67. package/dist/assets/{page-layout-XgNPsCmr.js → page-layout-DfZJtWW1.js} +1 -1
  68. package/dist/assets/{page-not-found-CrFJMQNO.js → page-not-found-DnA0E-xR.js} +1 -1
  69. package/dist/assets/{panel-top-open-DU7alj-S.js → panel-top-open-D0lkFvhk.js} +1 -1
  70. package/dist/assets/{pencil-9DTTP5vx.js → pencil-DhN5v-Lb.js} +1 -1
  71. package/dist/assets/{report-commentary-row-BdS3qqMS.js → report-commentary-row-DvvXelmb.js} +1 -1
  72. package/dist/assets/{save-i8sPy_OW.js → save-CCZ-i4rw.js} +1 -1
  73. package/dist/assets/{similar-transactions-modal-CZAOYt-d.js → similar-transactions-modal-kFlTMg9C.js} +1 -1
  74. package/dist/assets/{sub-BL9nfaPD.js → sub-BKVGhLrr.js} +1 -1
  75. package/dist/assets/subMonths-Cbkj4M6-.js +1 -0
  76. package/dist/assets/{summary-Dfiju7xJ.js → summary-BuSv6nwb.js} +1 -1
  77. package/dist/assets/{toggle-expansion-button-BbVh8z6s.js → toggle-expansion-button-CojtDNtC.js} +1 -1
  78. package/dist/assets/tooltip-CoQF2skM.js +1 -0
  79. package/dist/assets/{use-url-query-5TFyEk1x.js → use-url-query-90MrwS1C.js} +1 -1
  80. package/dist/index.html +1 -1
  81. package/package.json +2 -2
  82. package/src/components/business/admin-business-section.tsx +282 -103
  83. package/src/components/clients/contracts/modify-contract-dialog.tsx +1 -7
  84. package/src/components/contracts/cells/date.tsx +5 -1
  85. package/src/components/contracts/columns.tsx +1 -1
  86. package/src/components/contracts/contracts-filter.tsx +8 -9
  87. package/src/components/contracts/index.tsx +0 -1
  88. package/src/components/contracts/issue-documents-modal.tsx +5 -3
  89. package/src/components/screens/businesses/clients/contracts/contracts.tsx +2 -4
  90. package/src/gql/gql.ts +3 -3
  91. package/src/gql/graphql.ts +52 -17
  92. package/dist/assets/business-qHY5sNtm.js +0 -37
  93. package/dist/assets/contracts-C26gq1yS.js +0 -16
  94. package/dist/assets/index-B86FoQmY.js +0 -1
  95. package/dist/assets/index-BZLSFBEt.js +0 -1
  96. package/dist/assets/index-CqIav7Xr.js +0 -1
  97. package/dist/assets/index-Dp9F68vS.js +0 -1
  98. package/dist/assets/index-NdA_oCxx.js +0 -1
  99. package/dist/assets/index-q3ev6JER.js +0 -1
  100. package/dist/assets/issue-document-BxTTlJ1T.js +0 -1
  101. package/dist/assets/login-page-BpgscuKm.js +0 -1
  102. package/dist/assets/modify-contract-dialog-BoeamC68.js +0 -1
  103. package/dist/assets/subMonths-DHPWOZP6.js +0 -1
  104. package/dist/assets/tooltip-C-fd9L1l.js +0 -1
@@ -1,37 +0,0 @@
1
- import{v as Z,w as xs,u as ee,S as ps,r as p,j as e,D as Je,x as Qe,E as js,c as Ye,g as Ze,t as ne,i as es,U as gs,y as Be,z as ss,G as pe,H as M,J as $,K as as,N as z,O as U,Q as Te,V as G,W as j,X as g,Y as f,Z as C,I as B,_ as v,$ as w,a0 as ie,a1 as Ee,B as T,a2 as fs,a3 as ts,a4 as Pe,a5 as _,a6 as vs,a7 as Le,a8 as ys,P as Ns,a9 as bs,aa as P,ab as _e,ac as Cs,ad as ws,ae as Ss,af as J,ag as Q,ah as ks,ai as As,aj as Is,ak as we,al as Ds,am as Bs,an as Ts,ao as Es,ap as Ps,aq as Ls,ar as Os,as as Fs,at as re,au as Y,av as xe,aw as _s,ax as Vs,ay as Se,az as Ve,aA as ns,aB as Rs,aC as ke,aD as Ms,aE as Re,aF as $s,aG as Me,aH as zs,aI as Us,aJ as Gs,aK as qs,aL as Ws,aM as Ks,aN as Hs,aO as Xs,aP as Js,aQ as N,aR as Qs,aS as Oe,aT as Ys,aU as Zs,aV as ea,aW as sa,aX as aa,aY as ta,aZ as na,a_ as ia,a$ as ra,b0 as la,F as ca,b1 as oa,b2 as da,b3 as q,b4 as ma,b5 as ua,b6 as V,b7 as ha,a as xa,b as pa,b8 as ja}from"./index-Bd-SKdyy.js";import{S as Fe}from"./save-i8sPy_OW.js";import{B as ga}from"./business-extended-info-BPdDug4k.js";import{B as fa}from"./business-header-ScM944FH.js";import{S as va,C as ya,L as Na}from"./charges-table-Cff0tibm.js";import{i as ba,D as Ca,f as wa,E as Sa,L as ye,a as je,C as ka,A as Aa,b as me,c as Ia,d as Ae,h as Da,e as Ba,g as is,u as Ta,G as Ea,j as $e,k as Pa,X as rs,Y as ls,l as La,m as Oa,R as Fa,n as _a,o as Va,p as Ra}from"./chart-Rag7RVt5.js";import{M as Ma,s as $a,a as za}from"./modify-contract-dialog-BoeamC68.js";import{P as Ua}from"./pencil-9DTTP5vx.js";import{E as Ga,T as qa}from"./index-lMXNkFuw.js";import{A as Wa,a as Ne,b as be,c as ze}from"./accordion-KRd9M_7N.js";import{B as Ka}from"./building-2-BScQAy2y.js";import"./download-csv-button-8ow10rSS.js";import"./Table-DpZKU9e6.js";import"./toggle-expansion-button-BbVh8z6s.js";import"./panel-top-open-DU7alj-S.js";import"./summary-Dfiju7xJ.js";import"./list-plus-B7wBrICK.js";import"./sequential-CAnleQny.js";import"./similar-transactions-modal-CZAOYt-d.js";import"./addDays-HTdY9JyJ.js";import"./tooltip-C-fd9L1l.js";/**
2
- * @license lucide-react v0.548.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const Ha=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"m19 9-5 5-4-4-3 3",key:"2osh9i"}]],Xa=Z("chart-line",Ha);/**
7
- * @license lucide-react v0.548.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */const Ja=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Ue=Z("circle-check",Ja);/**
12
- * @license lucide-react v0.548.0 - ISC
13
- *
14
- * This source code is licensed under the ISC license.
15
- * See the LICENSE file in the root directory of this source tree.
16
- */const Qa=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],ge=Z("dollar-sign",Qa);/**
17
- * @license lucide-react v0.548.0 - ISC
18
- *
19
- * This source code is licensed under the ISC license.
20
- * See the LICENSE file in the root directory of this source tree.
21
- */const Ya=[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m9 15 2 2 4-4",key:"1grp1n"}]],Za=Z("file-check",Ya);/**
22
- * @license lucide-react v0.548.0 - ISC
23
- *
24
- * This source code is licensed under the ISC license.
25
- * See the LICENSE file in the root directory of this source tree.
26
- */const et=[["path",{d:"M2 6h4",key:"aawbzj"}],["path",{d:"M2 10h4",key:"l0bgd4"}],["path",{d:"M2 14h4",key:"1gsvsf"}],["path",{d:"M2 18h4",key:"1bu2t1"}],["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["path",{d:"M16 2v20",key:"rotuqe"}]],st=Z("notebook",et);/**
27
- * @license lucide-react v0.548.0 - ISC
28
- *
29
- * This source code is licensed under the ISC license.
30
- * See the LICENSE file in the root directory of this source tree.
31
- */const at=[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M9 8V2",key:"14iosj"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z",key:"osxo6l"}]],tt=Z("plug",at);/**
32
- * @license lucide-react v0.548.0 - ISC
33
- *
34
- * This source code is licensed under the ISC license.
35
- * See the LICENSE file in the root directory of this source tree.
36
- */const nt=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],Ce=Z("trending-up",nt);function it(s){return xs(s,"yyyy-MM-dd")}function rt({businessId:s,tagIds:t,description:a,open:n,onOpenChange:o,onClose:d}){const[{data:l,fetching:i},r]=ee({pause:!0,query:ps,variables:{businessId:s,tagsDifferentThan:t?t.map(u=>u.id):void 0,descriptionDifferentThan:a}});p.useEffect(()=>{n&&(t||a)&&!l&&r()},[n,t,a,r,l]);const c=p.useCallback(u=>{o(u),n&&!u&&d?.()},[o,d,n]),m=p.useMemo(()=>n&&(!!t||!!a)&&l&&l?.similarChargesByBusiness.length>0,[n,t,a,l]);return e.jsx(Je,{open:m,onOpenChange:c,children:e.jsx(Qe,{className:"overflow-scroll max-h-screen w-full sm:max-w-[640px] md:max-w-[768px] lg:max-w-[900px]",onClick:u=>u.stopPropagation(),children:e.jsx(js,{fallback:e.jsx("div",{children:"Error fetching similar charges"}),children:i?e.jsx(Ye,{}):t||a?e.jsx(va,{data:l?.similarChargesByBusiness??[],tagIds:t,description:a,onOpenChange:c,title:"Similar Charges by Business"}):null})})})}const lt="updateAdminBusiness",ct=()=>{const[{fetching:s},t]=Ze(gs),a=p.useCallback(async n=>{const o=`Error updating admin business ID [${n.adminBusinessId}]`,d=`${lt}-${n.adminBusinessId}`;ne.loading("Updating admin business",{id:d});try{const l=await t(n),i=es(l,o,d,"updateAdminBusiness");if(i)return ne.success("Success",{id:d,description:"Admin Business Updated"}),i.updateAdminBusiness}catch(l){console.error(`${o}: ${l}`),ne.error("Error",{id:d,description:o,duration:1e5,closeButton:!0})}},[t]);return{fetching:s,updateAdminBusiness:a}},ot=ts({withholdingTaxBookNumber:_().min(1,{message:"Withholding Tax Book Number is required"}),withholdingTaxFileNumber:_().min(1,{message:"Withholding Tax File Number is required"}),socialSecurityEmployerId:_().min(1,{message:"National Insurance Employer ID is required"}),taxAdvancesRate:vs().min(0,{message:"Advance Tax Rate must be at least 0"}).max(100,{message:"Advance Tax Rate must be at most 100"}),taxAdvancesId:_().min(1,{message:"Tax Advances ID is required"}),registrationDate:_().min(1,{message:"Business Registration Start Date is required"})});function Ge(s){return!s||s.__typename!=="LtdFinancialEntity"||!s.adminInfo?{}:{withholdingTaxBookNumber:s.adminInfo.withholdingTaxBookNumber??"",withholdingTaxFileNumber:s.adminInfo.withholdingTaxFileNumber??"",socialSecurityEmployerId:s.adminInfo.socialSecurityEmployerId??"",taxAdvancesRate:s.adminInfo.taxAdvancesRate??0,taxAdvancesId:s.adminInfo.taxAdvancesId??"",registrationDate:s.adminInfo.registrationDate??""}}function dt(s){return{withholdingTaxBookNumber:s.withholdingTaxBookNumber,withholdingTaxFileNumber:s.withholdingTaxFileNumber,socialSecurityEmployerId:s.socialSecurityEmployerId,taxAdvancesRate:s.taxAdvancesRate,taxAdvancesId:s.taxAdvancesId,registrationDate:s.registrationDate?it(new Date(s.registrationDate)):void 0}}function mt({data:s,refetchBusiness:t}){const a=pe(fs,s),[n,o]=p.useState(Ge(a)),{updateAdminBusiness:d,fetching:l}=ct(),i=Be({resolver:ss(ot),defaultValues:n}),r=async c=>{if(!a)return;const m=Pe(c,i.formState.dirtyFields);if(!m)return;const u=dt(m);await d({adminBusinessId:a.id,fields:u}),t?.()};return p.useEffect(()=>{if(a){const c=Ge(a);o(c),i.reset(c)}},[a,i]),e.jsxs(M,{children:[e.jsxs($,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(as,{className:"h-5 w-5 text-primary"}),e.jsx(z,{children:"Admin Business Configuration"})]}),e.jsx(U,{children:"Tax and registration information for the business operating this application"})]}),e.jsx(Te,{...i,children:e.jsxs("form",{onSubmit:i.handleSubmit(r),className:"space-y-6",children:[e.jsx(G,{children:e.jsxs("div",{className:"grid gap-6 md:grid-cols-2",children:[e.jsx("h3",{className:"text-sm font-semibold text-foreground md:col-span-2",children:"Withholding Tax"}),e.jsx(j,{control:i.control,name:"withholdingTaxBookNumber",render:({field:c,fieldState:m})=>e.jsxs(g,{children:[e.jsx(f,{children:"Book Number"}),e.jsx(C,{children:e.jsx(B,{placeholder:"Enter book number",...c,className:v(m)})}),e.jsx(w,{})]})}),e.jsx(j,{control:i.control,name:"withholdingTaxFileNumber",render:({field:c,fieldState:m})=>e.jsxs(g,{children:[e.jsx(f,{children:"File Number"}),e.jsx(C,{children:e.jsx(B,{placeholder:"Enter file number",...c,className:v(m)})}),e.jsx(w,{})]})}),e.jsx(ie,{className:"md:col-span-2"}),e.jsx("h3",{className:"text-sm font-semibold text-foreground md:col-span-2",children:"Tax Advances"}),e.jsx(j,{control:i.control,name:"taxAdvancesId",render:({field:c,fieldState:m})=>e.jsxs(g,{children:[e.jsx(f,{children:"Identification number"}),e.jsx(C,{children:e.jsx(B,{placeholder:"Enter tax advances ID",...c,className:v(m)})}),e.jsx(w,{})]})}),e.jsx(j,{control:i.control,name:"taxAdvancesRate",render:({field:c,fieldState:m})=>e.jsxs(g,{children:[e.jsx(f,{children:"Tax Rate (%)"}),e.jsx(C,{children:e.jsx(B,{type:"number",step:"0.01",min:"0",max:"100",placeholder:"Enter tax rate",...c,className:v(m)})}),e.jsx(w,{})]})}),e.jsx(ie,{className:"md:col-span-2"}),e.jsx("h3",{className:"text-sm font-semibold text-foreground md:col-span-2",children:"Social Security"}),e.jsx(j,{control:i.control,name:"socialSecurityEmployerId",render:({field:c,fieldState:m})=>e.jsxs(g,{children:[e.jsx(f,{children:"Employer Identifier"}),e.jsx(C,{children:e.jsx(B,{placeholder:"Enter employer ID",...c,className:v(m)})}),e.jsx(w,{})]})}),e.jsx(ie,{className:"md:col-span-2"}),e.jsx(j,{control:i.control,name:"registrationDate",render:({field:c,fieldState:m})=>e.jsxs(g,{children:[e.jsx(f,{children:"Business Registration Start Date"}),e.jsx(C,{children:e.jsx(B,{type:"date",...c,className:v(m)})}),e.jsx(w,{})]})})]})}),e.jsx(Ee,{className:"flex justify-end border-t mt-4 pt-6",children:e.jsxs(T,{type:"submit",disabled:l||Object.keys(i.formState.dirtyFields).length===0||!i.formState.isValid,children:[e.jsx(Fe,{className:"h-4 w-4"}),"Save Changes"]})})]})})]})}function ut({businessId:s}){return e.jsxs(M,{children:[e.jsx($,{className:"flex w-full justify-between items-center",children:e.jsx("div",{className:"flex items-center justify-between",children:e.jsxs("div",{children:[e.jsx(z,{children:"Balance"}),e.jsx(U,{children:"Business balance overview"})]})})}),e.jsx(G,{children:e.jsx("div",{className:"rounded-md border",children:e.jsx(ga,{businessID:s,filter:{}})})})]})}function ht({businessId:s}){const{userContext:t}=p.useContext(Le),[a,n]=p.useState(0),[{data:o,fetching:d}]=ee({query:ys,variables:{filters:{byOwners:t?.context.adminBusinessId?[t.context.adminBusinessId]:void 0,sortBy:{field:bs.Date,asc:!1},byBusinesses:[s]},page:a-1,limit:10}}),l=o?.allCharges?.pageInfo.totalPages??1,i=o?.allCharges?.nodes??[];return d?e.jsx("div",{children:"Loading charges..."}):e.jsxs(M,{children:[e.jsxs($,{className:"flex w-full justify-between items-center",children:[e.jsx("div",{className:"flex items-center justify-between",children:e.jsxs("div",{children:[e.jsx(z,{children:"Charges"}),e.jsx(U,{children:"Recurring and one-time charges for this business"})]})}),l>1&&e.jsx(Ns,{className:"flex-fit w-fit mx-0",value:a,onChange:n,total:l})]}),e.jsx(G,{children:e.jsx("div",{className:"rounded-md border",children:e.jsx(ya,{data:i,isAllOpened:!1})})})]})}var xt=["type","layout","connectNulls","ref"],pt=["key"];function le(s){"@babel/helpers - typeof";return le=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},le(s)}function qe(s,t){if(s==null)return{};var a=jt(s,t),n,o;if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(s);for(o=0;o<d.length;o++)n=d[o],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(s,n)&&(a[n]=s[n])}return a}function jt(s,t){if(s==null)return{};var a={};for(var n in s)if(Object.prototype.hasOwnProperty.call(s,n)){if(t.indexOf(n)>=0)continue;a[n]=s[n]}return a}function he(){return he=Object.assign?Object.assign.bind():function(s){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(s[n]=a[n])}return s},he.apply(this,arguments)}function We(s,t){var a=Object.keys(s);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(s);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(s,o).enumerable})),a.push.apply(a,n)}return a}function O(s){for(var t=1;t<arguments.length;t++){var a=arguments[t]!=null?arguments[t]:{};t%2?We(Object(a),!0).forEach(function(n){R(s,n,a[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(a)):We(Object(a)).forEach(function(n){Object.defineProperty(s,n,Object.getOwnPropertyDescriptor(a,n))})}return s}function te(s){return yt(s)||vt(s)||ft(s)||gt()}function gt(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
37
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ft(s,t){if(s){if(typeof s=="string")return Ie(s,t);var a=Object.prototype.toString.call(s).slice(8,-1);if(a==="Object"&&s.constructor&&(a=s.constructor.name),a==="Map"||a==="Set")return Array.from(s);if(a==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return Ie(s,t)}}function vt(s){if(typeof Symbol<"u"&&s[Symbol.iterator]!=null||s["@@iterator"]!=null)return Array.from(s)}function yt(s){if(Array.isArray(s))return Ie(s)}function Ie(s,t){(t==null||t>s.length)&&(t=s.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=s[a];return n}function Nt(s,t){if(!(s instanceof t))throw new TypeError("Cannot call a class as a function")}function Ke(s,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(s,os(n.key),n)}}function bt(s,t,a){return t&&Ke(s.prototype,t),a&&Ke(s,a),Object.defineProperty(s,"prototype",{writable:!1}),s}function Ct(s,t,a){return t=fe(t),wt(s,cs()?Reflect.construct(t,a||[],fe(s).constructor):t.apply(s,a))}function wt(s,t){if(t&&(le(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return St(s)}function St(s){if(s===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return s}function cs(){try{var s=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(cs=function(){return!!s})()}function fe(s){return fe=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(a){return a.__proto__||Object.getPrototypeOf(a)},fe(s)}function kt(s,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");s.prototype=Object.create(t&&t.prototype,{constructor:{value:s,writable:!0,configurable:!0}}),Object.defineProperty(s,"prototype",{writable:!1}),t&&De(s,t)}function De(s,t){return De=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},De(s,t)}function R(s,t,a){return t=os(t),t in s?Object.defineProperty(s,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):s[t]=a,s}function os(s){var t=At(s,"string");return le(t)=="symbol"?t:t+""}function At(s,t){if(le(s)!="object"||!s)return s;var a=s[Symbol.toPrimitive];if(a!==void 0){var n=a.call(s,t);if(le(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(s)}var ce=(function(s){function t(){var a;Nt(this,t);for(var n=arguments.length,o=new Array(n),d=0;d<n;d++)o[d]=arguments[d];return a=Ct(this,t,[].concat(o)),R(a,"state",{isAnimationFinished:!0,totalLength:0}),R(a,"generateSimpleStrokeDasharray",function(l,i){return"".concat(i,"px ").concat(l-i,"px")}),R(a,"getStrokeDasharray",function(l,i,r){var c=r.reduce(function(E,L){return E+L});if(!c)return a.generateSimpleStrokeDasharray(i,l);for(var m=Math.floor(l/c),u=l%c,h=i-l,k=[],b=0,A=0;b<r.length;A+=r[b],++b)if(A+r[b]>u){k=[].concat(te(r.slice(0,b)),[u-A]);break}var D=k.length%2===0?[0,h]:[h];return[].concat(te(t.repeat(r,m)),te(k),D).map(function(E){return"".concat(E,"px")}).join(", ")}),R(a,"id",Ta("recharts-line-")),R(a,"pathRef",function(l){a.mainCurve=l}),R(a,"handleAnimationEnd",function(){a.setState({isAnimationFinished:!0}),a.props.onAnimationEnd&&a.props.onAnimationEnd()}),R(a,"handleAnimationStart",function(){a.setState({isAnimationFinished:!1}),a.props.onAnimationStart&&a.props.onAnimationStart()}),a}return kt(t,s),bt(t,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var n=this.getTotalLength();this.setState({totalLength:n})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var n=this.getTotalLength();n!==this.state.totalLength&&this.setState({totalLength:n})}}},{key:"getTotalLength",value:function(){var n=this.mainCurve;try{return n&&n.getTotalLength&&n.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(n,o){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var d=this.props,l=d.points,i=d.xAxis,r=d.yAxis,c=d.layout,m=d.children,u=wa(m,Sa);if(!u)return null;var h=function(A,D){return{x:A.x,y:A.y,value:A.value,errorVal:is(A.payload,D)}},k={clipPath:n?"url(#clipPath-".concat(o,")"):null};return P.createElement(ye,k,u.map(function(b){return P.cloneElement(b,{key:"bar-".concat(b.props.dataKey),data:l,xAxis:i,yAxis:r,layout:c,dataPointFormatter:h})}))}},{key:"renderDots",value:function(n,o,d){var l=this.props.isAnimationActive;if(l&&!this.state.isAnimationFinished)return null;var i=this.props,r=i.dot,c=i.points,m=i.dataKey,u=je(this.props,!1),h=je(r,!0),k=c.map(function(A,D){var E=O(O(O({key:"dot-".concat(D),r:3},u),h),{},{index:D,cx:A.x,cy:A.y,value:A.value,dataKey:m,payload:A.payload,points:c});return t.renderDotItem(r,E)}),b={clipPath:n?"url(#clipPath-".concat(o?"":"dots-").concat(d,")"):null};return P.createElement(ye,he({className:"recharts-line-dots",key:"dots"},b),k)}},{key:"renderCurveStatically",value:function(n,o,d,l){var i=this.props,r=i.type,c=i.layout,m=i.connectNulls;i.ref;var u=qe(i,xt),h=O(O(O({},je(u,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:o?"url(#clipPath-".concat(d,")"):null,points:n},l),{},{type:r,layout:c,connectNulls:m});return P.createElement(ka,he({},h,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(n,o){var d=this,l=this.props,i=l.points,r=l.strokeDasharray,c=l.isAnimationActive,m=l.animationBegin,u=l.animationDuration,h=l.animationEasing,k=l.animationId,b=l.animateNewValues,A=l.width,D=l.height,E=this.state,L=E.prevPoints,W=E.totalLength;return P.createElement(Aa,{begin:m,duration:u,isActive:c,easing:h,from:{t:0},to:{t:1},key:"line-".concat(k),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(K){var F=K.t;if(L){var X=L.length/i.length,H=i.map(function(I,ve){var oe=Math.floor(ve*X);if(L[oe]){var de=L[oe],ae=me(de.x,I.x),ms=me(de.y,I.y);return O(O({},I),{},{x:ae(F),y:ms(F)})}if(b){var us=me(A*2,I.x),hs=me(D/2,I.y);return O(O({},I),{},{x:us(F),y:hs(F)})}return O(O({},I),{},{x:I.x,y:I.y})});return d.renderCurveStatically(H,n,o)}var se=me(0,W),x=se(F),y;if(r){var S="".concat(r).split(/[,\s]+/gim).map(function(I){return parseFloat(I)});y=d.getStrokeDasharray(x,W,S)}else y=d.generateSimpleStrokeDasharray(W,x);return d.renderCurveStatically(i,n,o,{strokeDasharray:y})})}},{key:"renderCurve",value:function(n,o){var d=this.props,l=d.points,i=d.isAnimationActive,r=this.state,c=r.prevPoints,m=r.totalLength;return i&&l&&l.length&&(!c&&m>0||!Ia(c,l))?this.renderCurveWithAnimation(n,o):this.renderCurveStatically(l,n,o)}},{key:"render",value:function(){var n,o=this.props,d=o.hide,l=o.dot,i=o.points,r=o.className,c=o.xAxis,m=o.yAxis,u=o.top,h=o.left,k=o.width,b=o.height,A=o.isAnimationActive,D=o.id;if(d||!i||!i.length)return null;var E=this.state.isAnimationFinished,L=i.length===1,W=_e("recharts-line",r),K=c&&c.allowDataOverflow,F=m&&m.allowDataOverflow,X=K||F,H=Ae(D)?this.id:D,se=(n=je(l,!1))!==null&&n!==void 0?n:{r:3,strokeWidth:2},x=se.r,y=x===void 0?3:x,S=se.strokeWidth,I=S===void 0?2:S,ve=Da(l)?l:{},oe=ve.clipDot,de=oe===void 0?!0:oe,ae=y*2+I;return P.createElement(ye,{className:W},K||F?P.createElement("defs",null,P.createElement("clipPath",{id:"clipPath-".concat(H)},P.createElement("rect",{x:K?h:h-k/2,y:F?u:u-b/2,width:K?k:k*2,height:F?b:b*2})),!de&&P.createElement("clipPath",{id:"clipPath-dots-".concat(H)},P.createElement("rect",{x:h-ae/2,y:u-ae/2,width:k+ae,height:b+ae}))):null,!L&&this.renderCurve(X,H),this.renderErrorBar(X,H),(L||l)&&this.renderDots(X,de,H),(!A||E)&&Ba.renderCallByParent(this.props,i))}}],[{key:"getDerivedStateFromProps",value:function(n,o){return n.animationId!==o.prevAnimationId?{prevAnimationId:n.animationId,curPoints:n.points,prevPoints:o.curPoints}:n.points!==o.curPoints?{curPoints:n.points}:null}},{key:"repeat",value:function(n,o){for(var d=n.length%2!==0?[].concat(te(n),[0]):n,l=[],i=0;i<o;++i)l=[].concat(te(l),te(d));return l}},{key:"renderDotItem",value:function(n,o){var d;if(P.isValidElement(n))d=P.cloneElement(n,o);else if(ba(n))d=n(o);else{var l=o.key,i=qe(o,pt),r=_e("recharts-line-dot",typeof n!="boolean"?n.className:"");d=P.createElement(Ca,he({key:l},i,{className:r}))}return d}}])})(p.PureComponent);R(ce,"displayName","Line");R(ce,"defaultProps",{xAxisId:0,yAxisId:0,connectNulls:!1,activeDot:!0,dot:!0,legendType:"line",stroke:"#3182bd",strokeWidth:1,fill:"#fff",points:[],isAnimationActive:!Ea.isSsr,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",hide:!1,label:!1});R(ce,"getComposedData",function(s){var t=s.props,a=s.xAxis,n=s.yAxis,o=s.xAxisTicks,d=s.yAxisTicks,l=s.dataKey,i=s.bandSize,r=s.displayedData,c=s.offset,m=t.layout,u=r.map(function(h,k){var b=is(h,l);return m==="horizontal"?{x:$e({axis:a,ticks:o,bandSize:i,entry:h,index:k}),y:Ae(b)?null:n.scale(b),value:b,payload:h}:{x:Ae(b)?null:a.scale(b),y:$e({axis:n,ticks:d,bandSize:i,entry:h,index:k}),value:b,payload:h}});return O({points:u,layout:m},c)});var It=Pa({chartName:"LineChart",GraphicalChild:ce,axisComponents:[{axisType:"xAxis",AxisComp:rs},{axisType:"yAxis",AxisComp:ls}],formatAxisMap:La});const ue=[{month:"Jan",revenue:12500,expenses:8200},{month:"Feb",revenue:15800,expenses:9100},{month:"Mar",revenue:18200,expenses:10500},{month:"Apr",revenue:16900,expenses:9800},{month:"May",revenue:21300,expenses:11200},{month:"Jun",revenue:24500,expenses:12800},{month:"Jul",revenue:22800,expenses:11900},{month:"Aug",revenue:26100,expenses:13500},{month:"Sep",revenue:28900,expenses:14200},{month:"Oct",revenue:31200,expenses:15100}];function Dt(){const s=ue.reduce((a,n)=>a+n.revenue,0),t=s/ue.length;return e.jsxs(M,{children:[e.jsxs($,{children:[e.jsx(z,{children:"Revenue Analytics"}),e.jsx(U,{children:"Revenue and expenses over time"})]}),e.jsxs(G,{children:[e.jsxs("div",{className:"grid gap-4 md:grid-cols-3 mb-6",children:[e.jsxs("div",{className:"rounded-lg border p-4 space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(ge,{className:"h-4 w-4"}),"Total Revenue"]}),e.jsxs("p",{className:"text-2xl font-bold",children:["$",s.toLocaleString()]}),e.jsxs("div",{className:"flex items-center gap-1 text-sm text-green-600",children:[e.jsx(Ce,{className:"h-3 w-3"}),e.jsx("span",{children:"+24.5% from last period"})]})]}),e.jsxs("div",{className:"rounded-lg border p-4 space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(ge,{className:"h-4 w-4"}),"Average Monthly"]}),e.jsxs("p",{className:"text-2xl font-bold",children:["$",t.toLocaleString(void 0,{maximumFractionDigits:0})]}),e.jsxs("div",{className:"flex items-center gap-1 text-sm text-green-600",children:[e.jsx(Ce,{className:"h-3 w-3"}),e.jsx("span",{children:"+18.2% growth rate"})]})]}),e.jsxs("div",{className:"rounded-lg border p-4 space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(ge,{className:"h-4 w-4"}),"Current Month"]}),e.jsxs("p",{className:"text-2xl font-bold",children:["$",ue[ue.length-1].revenue.toLocaleString()]}),e.jsxs("div",{className:"flex items-center gap-1 text-sm text-green-600",children:[e.jsx(Ce,{className:"h-3 w-3"}),e.jsx("span",{children:"+8.0% from last month"})]})]})]}),e.jsx(Oa,{config:{revenue:{label:"Revenue",color:"hsl(var(--chart-1))"},expenses:{label:"Expenses",color:"hsl(var(--chart-2))"}},className:"h-[400px]",children:e.jsx(Fa,{width:"100%",height:"100%",children:e.jsxs(It,{data:ue,margin:{top:5,right:10,left:10,bottom:5},children:[e.jsx(_a,{strokeDasharray:"3 3",className:"stroke-muted"}),e.jsx(rs,{dataKey:"month",className:"text-xs",tick:{fill:"hsl(var(--muted-foreground))"}}),e.jsx(ls,{className:"text-xs",tick:{fill:"hsl(var(--muted-foreground))"}}),e.jsx(Va,{content:e.jsx(Ra,{})}),e.jsx(ce,{type:"monotone",dataKey:"revenue",stroke:"var(--color-revenue)",strokeWidth:2,dot:{fill:"var(--color-revenue)",r:4}}),e.jsx(ce,{type:"monotone",dataKey:"expenses",stroke:"var(--color-expenses)",strokeWidth:2,dot:{fill:"var(--color-expenses)",r:4}})]})})})]})]})}const Bt="updateBusiness",ds=()=>{const[{fetching:s},t]=Ze(Cs),a=p.useCallback(async n=>{const o=`Error updating business ID [${n.businessId}]`,d=`${Bt}-${n.businessId}`;ne.loading("Updating business",{id:d});try{const l=await t(n),i=es(l,o,d,"updateBusiness");if(i)return ne.success("Success",{id:d,description:"Business updated"}),i.updateBusiness}catch(l){console.error(`${o}: ${l}`),ne.error("Error",{id:d,description:o,duration:1e5,closeButton:!0})}},[t]);return{fetching:s,updateBusiness:a}},Tt=Object.values(_s);function He(s){return!s||s.__typename!=="LtdFinancialEntity"?{}:{isClient:!!s.clientInfo?.id,isActive:s.isActive,isReceiptEnough:s.isReceiptEnough??void 0,isDocumentsOptional:s.isDocumentsOptional??void 0,isVatOptional:s.optionalVAT??void 0,isExemptDealer:s.exemptDealer??void 0,sortCode:s.sortCode?.key?.toString()??void 0,taxCategory:s.taxCategory?.id??void 0,pcn874RecordType:s?.pcn874RecordType??void 0,irsCode:s?.irsCode??void 0,description:s.suggestions?.description??void 0,tags:s.suggestions?.tags?.map(t=>t.id)??[],phrases:s.suggestions?.phrases??[],emails:s.suggestions?.emails??[],internalLinks:s.suggestions?.emailListener?.internalEmailLinks??[],attachmentTypes:s.suggestions?.emailListener?.attachments??[],useMessageBody:s.suggestions?.emailListener?.emailBody??void 0}}function Et(s){const a=s.internalLinks||s.useMessageBody||s.attachmentTypes?{internalEmailLinks:s.internalLinks,emailBody:s.useMessageBody,attachments:s.attachmentTypes}:void 0,o=s.description||s.tags||s.phrases||s.emails||a?{description:s.description,tags:s.tags?.map(d=>({id:d})),phrases:s.phrases,emails:s.emails,emailListener:a}:void 0;return{optionalVAT:s.isVatOptional,exemptDealer:s.isExemptDealer,sortCode:s.sortCode?parseInt(s.sortCode):void 0,taxCategory:s.taxCategory,pcn874RecordType:s.pcn874RecordType,irsCode:s.irsCode,isActive:s.isActive,isReceiptEnough:s.isReceiptEnough,isDocumentsOptional:s.isDocumentsOptional,suggestions:o}}function Pt({data:s,refetchBusiness:t}){const a=pe(Ss,s),[n,o]=p.useState(He(a)),{userContext:d}=p.useContext(Le),{updateBusiness:l,fetching:i}=ds(),[r,c]=p.useState(!1),[m,u]=p.useState(void 0),h=Be({defaultValues:n}),k=async A=>{if(!a||!d?.context.adminBusinessId)return;const D=Pe(A,h.formState.dirtyFields);if(!D)return;const E=Et(D);await l({businessId:a.id,ownerId:d.context.adminBusinessId,fields:E}),D.tags?.length||D.description?(u({tagIds:D.tags?.map(L=>({id:L})),description:D.description}),c(!0)):t?.()};if(p.useEffect(()=>{if(a){const A=He(a);o(A),h.reset(A)}},[a,h]),!a)return e.jsx("div",{});const b=h.watch("isClient");return e.jsxs(M,{children:[e.jsx($,{children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx(z,{children:"Configurations"}),e.jsx(U,{children:"Business status, tax settings, automation rules, and integration preferences"})]}),!b&&e.jsx(ws,{businessId:a.id,onDone:t})]})}),e.jsx(Te,{...h,children:e.jsxs("form",{onSubmit:h.handleSubmit(k),children:[e.jsxs(G,{className:"space-y-6",children:[e.jsx(Lt,{form:h}),e.jsx(ie,{}),e.jsx(Ot,{form:h}),e.jsx(ie,{}),e.jsx(Ft,{form:h}),e.jsx(ie,{}),e.jsx(_t,{form:h})]}),e.jsx(Ee,{className:"flex justify-end border-t pt-6",children:e.jsxs(T,{type:"submit",disabled:i||Object.keys(h.formState.dirtyFields).length===0,children:[e.jsx(Fe,{className:"h-4 w-4 mr-2"}),"Save Changes"]})})]})}),e.jsx(rt,{businessId:a.id,tagIds:m?.tagIds,description:m?.description,open:r,onOpenChange:c,onClose:t})]})}function Lt({form:s}){return e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"text-sm font-semibold text-foreground",children:"Business Status & Behavior"}),e.jsxs("div",{className:"space-y-4",children:[e.jsx(j,{control:s.control,name:"isClient",render:({field:t,fieldState:a})=>e.jsxs(g,{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(f,{children:"Is Client"}),e.jsx(J,{children:"Mark this business as a client"})]}),e.jsx(C,{children:e.jsx(Q,{disabled:!0,checked:t.value,onCheckedChange:t.onChange,className:v(a)})})]})}),e.jsx(j,{control:s.control,name:"isActive",render:({field:t,fieldState:a})=>e.jsxs(g,{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(f,{children:"Is Active"}),e.jsx(J,{children:"Business is currently active"})]}),e.jsx(C,{children:e.jsx(Q,{checked:t.value,onCheckedChange:t.onChange,className:v(a)})})]})}),e.jsx(j,{control:s.control,name:"isReceiptEnough",render:({field:t,fieldState:a})=>e.jsxs(g,{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(f,{children:"Is Receipt Enough"}),e.jsx(J,{children:"Generate ledger for receipt documents if no invoice available"})]}),e.jsx(C,{children:e.jsx(Q,{checked:t.value,onCheckedChange:t.onChange,className:v(a)})})]})}),e.jsx(j,{control:s.control,name:"isDocumentsOptional",render:({field:t,fieldState:a})=>e.jsxs(g,{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(f,{children:"No Docs Required"}),e.jsx(J,{children:"Skip document validation for common charges"})]}),e.jsx(C,{children:e.jsx(Q,{checked:t.value,onCheckedChange:t.onChange,className:v(a)})})]})}),e.jsx(j,{control:s.control,name:"isVatOptional",render:({field:t,fieldState:a})=>e.jsxs(g,{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(f,{children:"Is VAT Optional"}),e.jsx(J,{children:"Mute missing VAT indicator"})]}),e.jsx(C,{children:e.jsx(Q,{checked:t.value,onCheckedChange:t.onChange,className:v(a)})})]})}),e.jsx(j,{control:s.control,name:"isExemptDealer",render:({field:t,fieldState:a})=>e.jsxs(g,{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(f,{children:"Is Exempt Dealer"}),e.jsx(J,{children:"Business is exempt from VAT requirements"})]}),e.jsx(C,{children:e.jsx(Q,{checked:t.value,onCheckedChange:t.onChange,className:v(a)})})]})})]})]})}function Ot({form:s}){const{selectableTaxCategories:t,fetching:a}=ks(),{selectableSortCodes:n,fetching:o,sortCodes:d}=As(),{selectableTags:l,fetching:i}=Is(),r=p.useCallback(c=>{if(c){const m=d.find(u=>Number(u.key)===Number(c));m&&(m.defaultIrsCode?s.setValue("irsCode",m.defaultIrsCode,{shouldDirty:!0}):s.setValue("irsCode",null,{shouldDirty:!0}))}},[s,d]);return e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"text-sm font-semibold text-foreground",children:"Default Settings"}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsx(j,{control:s.control,name:"sortCode",render:({field:c,fieldState:m})=>e.jsxs(g,{children:[e.jsx(f,{children:"Sort Code"}),e.jsx(C,{children:e.jsx(we,{onChange:u=>{r(u),c.onChange(u)},data:n,value:c.value,disabled:o,placeholder:"Scroll to see all options",formPart:!0,triggerProps:{className:v(m)}})}),e.jsx(w,{})]})}),e.jsx(j,{control:s.control,name:"taxCategory",render:({field:c,fieldState:m})=>e.jsxs(g,{children:[e.jsx(f,{children:"Tax Category"}),e.jsx(C,{children:e.jsx(we,{data:t,disabled:a,value:c.value,onChange:c.onChange,placeholder:"Scroll to see all options",formPart:!0,triggerProps:{className:v(m)}})}),e.jsx(w,{})]})}),e.jsx(j,{control:s.control,name:"pcn874RecordType",render:({field:c,fieldState:m})=>e.jsxs(g,{children:[e.jsx(f,{children:"PCN874 Record Type"}),e.jsxs(Ds,{onValueChange:c.onChange,value:c.value,children:[e.jsx(C,{children:e.jsx(Bs,{className:v(m),children:e.jsx(Ts,{})})}),e.jsx(Es,{children:Object.entries(Ps).map(([u,h])=>e.jsx(Ls,{value:u,children:`${h} (${u})`},u))})]}),e.jsx(w,{})]})}),e.jsx(j,{control:s.control,name:"irsCode",render:({field:c,fieldState:m})=>e.jsxs(g,{children:[e.jsx(f,{children:"IRS Code"}),e.jsx(C,{children:e.jsx(Os,{value:c.value??void 0,onValueChange:u=>c.onChange(u??null),hideControls:!0,decimalScale:0,className:v(m)})}),e.jsx(w,{})]})}),e.jsx(j,{control:s.control,name:"description",render:({field:c,fieldState:m})=>e.jsxs(g,{children:[e.jsx(f,{children:"Charge Description"}),e.jsx(C,{children:e.jsx(B,{placeholder:"Enter default charge description",...c,className:v(m)})}),e.jsx(w,{})]})}),e.jsx(j,{control:s.control,name:"tags",render:({field:c,fieldState:m})=>e.jsxs(g,{children:[e.jsx(f,{children:"Tags"}),e.jsx(C,{children:e.jsx(Fs,{options:Object.values(l).map(({value:u,label:h})=>({label:h,value:u})),onValueChange:c.onChange,defaultValue:c.value,value:c.value,placeholder:"Select Default Tags",variant:"default",disabled:i,className:v(m)})}),e.jsx(w,{})]})})]})]})}function Ft({form:s}){const[t,a]=p.useState(""),[n,o]=p.useState(""),d=()=>{if(t.trim()){const c=s.getValues("phrases");s.setValue("phrases",[...c,t.trim()],{shouldDirty:!0}),a("")}},l=()=>{if(n.trim()){const c=s.getValues("emails");s.setValue("emails",[...c,n.trim()],{shouldDirty:!0}),o("")}},i=c=>{const m=s.getValues("phrases");s.setValue("phrases",m.filter((u,h)=>h!==c),{shouldDirty:!0})},r=c=>{const m=s.getValues("emails");s.setValue("emails",m.filter((u,h)=>h!==c),{shouldDirty:!0})};return e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"text-sm font-semibold text-foreground",children:"Auto-matching Configuration"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Configure patterns for automatic matching of bank transactions and documents"}),e.jsx(j,{control:s.control,name:"phrases",render:({field:c,fieldState:m})=>e.jsxs(g,{children:[e.jsx(f,{children:"Phrases"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(B,{placeholder:"Add phrase...",value:t,onChange:u=>a(u.target.value),onKeyDown:u=>{u.key==="Enter"&&(u.preventDefault(),d())},className:v(m)}),e.jsx(T,{type:"button",size:"sm",onClick:d,children:e.jsx(re,{className:"h-4 w-4"})})]}),e.jsx("div",{className:"flex flex-wrap gap-2",children:c.value?.map((u,h)=>e.jsxs(Y,{variant:"secondary",className:"gap-1",children:[u,e.jsx(T,{variant:"ghost",size:"icon",className:"p-0 size-3",onClick:()=>i(h),children:e.jsx(xe,{className:"size-3 cursor-pointer",onClick:()=>i(h)})})]},h))}),e.jsx(w,{})]})}),e.jsx(j,{control:s.control,name:"emails",render:({field:c,fieldState:m})=>e.jsxs(g,{children:[e.jsx(f,{children:"Email Addresses"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(B,{type:"email",placeholder:"Add email...",value:n,onChange:u=>o(u.target.value),onKeyDown:u=>{u.key==="Enter"&&(u.preventDefault(),l())},className:v(m)}),e.jsx(T,{type:"button",size:"sm",onClick:l,children:e.jsx(re,{className:"h-4 w-4"})})]}),e.jsx("div",{className:"flex flex-wrap gap-2",children:c.value?.map((u,h)=>e.jsxs(Y,{variant:"secondary",className:"gap-1",children:[u,e.jsx(T,{variant:"ghost",size:"icon",className:"p-0 size-3",onClick:()=>r(h),children:e.jsx(xe,{className:"size-3 cursor-pointer"})})]},h))}),e.jsx(w,{})]})})]})}function _t({form:s}){const[t,a]=p.useState(""),n=()=>{if(t.trim()){const l=s.getValues("internalLinks");s.setValue("internalLinks",[...l,t.trim()],{shouldDirty:!0}),a("")}},o=l=>{const i=s.getValues("attachmentTypes");s.setValue("attachmentTypes",i?.includes(l)?i.filter(r=>r!==l):[...i,l],{shouldDirty:!0})},d=l=>{const i=s.getValues("internalLinks");s.setValue("internalLinks",i.filter((r,c)=>c!==l),{shouldDirty:!0})};return e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"text-sm font-semibold text-foreground",children:"Gmail Feature Configuration"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Configure Gmail integration settings for document processing"}),e.jsx(j,{control:s.control,name:"attachmentTypes",render:({field:l,fieldState:i})=>e.jsxs(g,{children:[e.jsx(f,{children:"Attachment Types"}),e.jsx("div",{className:v(i)+" rounded-md flex flex-wrap gap-2",children:Tt.map(r=>e.jsx(Y,{variant:l.value?.includes(r)?"default":"outline",className:"cursor-pointer",onClick:()=>o(r),children:r},r))}),e.jsx(w,{})]})}),e.jsx(j,{control:s.control,name:"internalLinks",render:({field:l,fieldState:i})=>e.jsxs(g,{children:[e.jsx(f,{children:"Internal Links"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(B,{type:"url",placeholder:"Add internal link...",value:t,onChange:r=>a(r.target.value),onKeyDown:r=>{r.key==="Enter"&&(r.preventDefault(),n())}}),e.jsx(T,{type:"button",size:"sm",onClick:n,children:e.jsx(re,{className:"h-4 w-4"})})]}),e.jsx("div",{className:v(i)+" flex flex-wrap gap-2 rounded-md",children:l.value?.map((r,c)=>e.jsxs(Y,{variant:"secondary",className:"gap-1 max-w-xs truncate",children:[r,e.jsx(T,{variant:"ghost",size:"icon",className:"p-0 size-3",onClick:()=>d(c),children:e.jsx(xe,{className:"size-3 cursor-pointer flex-shrink-0"})})]},c))}),e.jsx(w,{})]})}),e.jsx(j,{control:s.control,name:"useMessageBody",render:({field:l,fieldState:i})=>e.jsxs(g,{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(f,{children:"Should Use Message Body"}),e.jsx(J,{children:"Extract information from email message body"})]}),e.jsx(C,{children:e.jsx(Q,{checked:l.value,onCheckedChange:l.onChange,className:v(i)})})]})})]})}const Vt=ts({businessName:_().min(1,"Business name is required"),locality:_().min(1,"Locality is required"),localName:_().optional(),govId:_().optional(),address:_().optional(),localAddress:_().optional(),phone:_().optional(),website:$s("Invalid URL").optional().or(zs("")),generalContacts:Re(Me()).optional(),billingEmails:Re(Me()).optional()});function Xe(s){return!s||s.__typename!=="LtdFinancialEntity"?{}:{businessName:s.name,locality:s.country,localName:s.hebrewName??void 0,govId:s.governmentId??void 0,address:s.address??void 0,phone:s.phoneNumber??void 0,website:s.website??void 0,generalContacts:s.email?.split(",").map(t=>t.trim()),billingEmails:s.clientInfo?.emails}}function Rt(s){return{name:s.businessName,country:s.locality,hebrewName:s.localName,governmentId:s.govId,address:s.address,phoneNumber:s.phone,website:s.website,email:s.generalContacts?.join(", ")}}function Mt({data:s,refetchBusiness:t}){const a=pe(Ms,s),[n,o]=p.useState(Xe(a)),{userContext:d}=p.useContext(Le),{updateBusiness:l,fetching:i}=ds(),r=Be({resolver:ss(Vt),defaultValues:n}),{countries:c,fetching:m}=Vs(),[u,h]=p.useState(""),[k,b]=p.useState(""),A=r.watch("locality"),D=r.watch("address"),E=r.watch("localAddress");p.useEffect(()=>{D!==n.address&&r.setValue("address",D,{shouldDirty:!0})},[D,n.address,r]),p.useEffect(()=>{E!==n.localAddress&&r.setValue("localAddress",E,{shouldDirty:!0})},[E,n.localAddress,r]);const L=a&&"clientInfo"in a&&!!a.clientInfo,W=A===d?.context.locality,K=x=>{u.trim()&&(r.setValue("generalContacts",[...x,u.trim()],{shouldDirty:!0}),h(""))},F=(x,y)=>{r.setValue("generalContacts",x.filter((S,I)=>I!==y),{shouldDirty:!0})},X=x=>{k.trim()&&(r.setValue("billingEmails",[...x,k.trim()],{shouldDirty:!0}),b(""))},H=(x,y)=>{r.setValue("billingEmails",x.filter((S,I)=>I!==y),{shouldDirty:!0})},se=async x=>{if(!a||!d?.context.adminBusinessId)return;const y=Pe(x,r.formState.dirtyFields);if(!y)return;const S=Rt(y);await l({businessId:a.id,ownerId:d.context.adminBusinessId,fields:S}),t?.()};return p.useEffect(()=>{if(a){const x=Xe(a);o(x),r.reset(x)}},[a,r]),e.jsxs(M,{children:[e.jsxs($,{children:[e.jsx(z,{children:"Contact Information"}),e.jsx(U,{children:"Business contact details and address information"})]}),e.jsx(Te,{...r,children:e.jsxs("form",{onSubmit:r.handleSubmit(se),children:[e.jsx(G,{children:e.jsxs("div",{className:"grid gap-6 md:grid-cols-2",children:[e.jsx(j,{control:r.control,name:"businessName",render:({field:x,fieldState:y})=>e.jsxs(g,{children:[e.jsx(f,{children:"Business Name"}),e.jsx(C,{children:e.jsx(B,{...x,className:v(y)})}),e.jsx(w,{})]})}),e.jsx(j,{control:r.control,name:"locality",render:({field:x,fieldState:y})=>e.jsxs(g,{children:[e.jsx(f,{children:"Locality / Country"}),e.jsx(we,{onChange:x.onChange,data:c.map(S=>({value:S.code,label:S.name})),value:x.value,disabled:m,placeholder:"Scroll to see all options",formPart:!0,triggerProps:{className:v(y)}}),e.jsx(w,{})]})}),W&&e.jsx(j,{control:r.control,name:"localName",render:({field:x,fieldState:y})=>e.jsxs(g,{children:[e.jsx(f,{children:"Local Name"}),e.jsx(C,{children:e.jsx(B,{...x,placeholder:"Business name in local language",className:v(y)})}),e.jsx(w,{})]})}),W&&e.jsx(j,{control:r.control,name:"govId",render:({field:x,fieldState:y})=>e.jsxs(g,{children:[e.jsx(f,{children:"Government ID"}),e.jsx(C,{children:e.jsx(B,{...x,placeholder:"Enter Government ID",className:v(y)})}),e.jsx(w,{})]})}),e.jsx(j,{control:r.control,name:"address",render:({field:x,fieldState:y})=>e.jsxs(g,{className:"md:col-span-2",children:[e.jsxs(f,{className:"flex items-center gap-2",children:[e.jsx(Se,{className:"h-4 w-4"}),"Address"]}),e.jsx(C,{children:e.jsx(Ve,{...x,rows:3,placeholder:"Enter business address",className:v(y)})}),e.jsx(w,{})]})}),W&&e.jsx(j,{control:r.control,name:"localAddress",render:({field:x,fieldState:y})=>e.jsxs(g,{className:"md:col-span-2",children:[e.jsxs(f,{className:"flex items-center gap-2",children:[e.jsx(Se,{className:"h-4 w-4"}),"Local Address"]}),e.jsx(C,{children:e.jsx(Ve,{...x,rows:3,placeholder:"Enter address in local language",className:v(y)})}),e.jsx(w,{})]})}),e.jsx(j,{control:r.control,name:"phone",render:({field:x,fieldState:y})=>e.jsxs(g,{children:[e.jsxs(f,{className:"flex items-center gap-2",children:[e.jsx(ns,{className:"h-4 w-4"}),"Phone"]}),e.jsx(C,{children:e.jsx(B,{...x,type:"tel",placeholder:"+1 (555) 123-4567",className:v(y)})}),e.jsx(w,{})]})}),e.jsx(j,{control:r.control,name:"website",render:({field:x,fieldState:y})=>e.jsxs(g,{children:[e.jsxs(f,{className:"flex items-center gap-2",children:[e.jsx(Rs,{className:"h-4 w-4"}),"Website"]}),e.jsx(C,{children:e.jsx(B,{...x,type:"url",placeholder:"https://example.com",className:v(y)})}),e.jsx(w,{})]})}),e.jsx(j,{control:r.control,name:"generalContacts",render:({field:x,fieldState:y})=>e.jsxs(g,{className:"md:col-span-2",children:[e.jsxs(f,{className:"flex items-center gap-2",children:[e.jsx(ke,{className:"h-4 w-4"}),"General Contacts"]}),e.jsx(C,{children:e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:v(y)+" flex flex-wrap gap-2 mb-2 rounded-md",children:x.value?.map((S,I)=>e.jsxs(Y,{variant:"secondary",className:"gap-1 pr-1",children:[S,e.jsx("button",{type:"button",onClick:()=>F(x.value??[],I),className:"ml-1 hover:bg-muted rounded-sm p-0.5",children:e.jsx(xe,{className:"h-3 w-3"})})]},I))}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(B,{value:u,onChange:S=>h(S.target.value),onKeyDown:S=>{S.key==="Enter"&&(S.preventDefault(),K(x.value??[]))},placeholder:"Add contact email",type:"email"}),e.jsx(T,{type:"button",variant:"outline",size:"icon",disabled:!u.trim(),onClick:()=>K(x.value??[]),children:e.jsx(re,{className:"h-4 w-4"})})]})]})}),e.jsx(w,{})]})}),L&&e.jsx(j,{control:r.control,name:"billingEmails",render:({field:x,fieldState:y})=>e.jsxs(g,{className:"md:col-span-2",children:[e.jsxs(f,{className:"flex items-center gap-2",children:[e.jsx(ke,{className:"h-4 w-4"}),"Billing Emails"]}),e.jsx(C,{children:e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:v(y)+" flex flex-wrap gap-2 mb-2 rounded-md",children:x.value?.map((S,I)=>e.jsxs(Y,{variant:"secondary",className:"gap-1 pr-1",children:[S,e.jsx("button",{type:"button",onClick:()=>H(x.value??[],I),className:"ml-1 hover:bg-muted rounded-sm p-0.5",children:e.jsx(xe,{className:"h-3 w-3"})})]},I))}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(B,{value:k,onChange:S=>b(S.target.value),onKeyDown:S=>{S.key==="Enter"&&(S.preventDefault(),X(x.value??[]))},placeholder:"Add billing email",type:"email"}),e.jsx(T,{type:"button",variant:"outline",size:"icon",disabled:!k.trim(),onClick:()=>X(x.value??[]),children:e.jsx(re,{className:"h-4 w-4"})})]})]})}),e.jsx(w,{})]})})]})}),e.jsx(Ee,{className:"flex justify-end border-t mt-4 pt-6",children:e.jsxs(T,{type:"submit",disabled:i||Object.keys(r.formState.dirtyFields).length===0,children:[e.jsx(Fe,{className:"h-4 w-4 mr-2"}),"Save Changes"]})})]})})]})}function $t(s){return{id:s.id,pos:s.purchaseOrders??void 0,startDate:s.startDate,endDate:s.endDate,paymentAmount:s.amount.raw,paymentCurrency:s.amount.currency,productType:s.product??void 0,billingCycle:s.billingCycle,msCloudLink:s.msCloud?.toString(),isActive:s.isActive,subscriptionPlan:s.plan??void 0,defaultRemark:s.remarks??void 0,defaultDocumentType:s.documentType??void 0,operationsLimit:s.operationsLimit}}function zt({clientId:s}){const[t,a]=p.useState(null),[{data:n,fetching:o},d]=ee({query:Us,variables:{clientId:s}}),l=n?.contractsByClient??[];return o?e.jsx("div",{children:"Loading contracts..."}):e.jsxs(M,{children:[e.jsx($,{children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx(z,{children:"Contracts"}),e.jsx(U,{children:"Current and past contracts sorted by start date"})]}),e.jsx(Ma,{clientId:s,contract:t,onDone:d})]})}),e.jsx(G,{className:"space-y-4",children:l.map(i=>{const r=!!i.isActive;return e.jsxs("div",{className:"rounded-lg border p-4 space-y-4",children:[e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h4",{className:"font-semibold",children:i.product}),e.jsx(Y,{variant:r?"default":"secondary",children:i.isActive?"Active":"Inactive"})]}),e.jsx("p",{className:"text-sm text-muted-foreground font-mono",children:i.id})]}),e.jsx(T,{variant:"ghost",size:"sm",onClick:()=>a($t(i)),children:e.jsx(Ua,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:[e.jsxs("div",{className:"space-y-0",children:[e.jsxs("p",{className:"text-sm text-muted-foreground flex items-center gap-1",children:[e.jsx(Gs,{className:"h-3 w-3"}),"Contract Period"]}),e.jsxs("p",{className:"text-sm font-medium",children:[new Date(i.startDate).toLocaleDateString()," →"," ",new Date(i.endDate).toLocaleDateString()]})]}),e.jsxs("div",{className:"space-y-0",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"PO Numbers"}),e.jsx("p",{className:"text-sm font-medium font-mono",children:i.purchaseOrders.toReversed()[0]??""}),i.purchaseOrders.length>1&&e.jsx("div",{className:"space-x-1",children:i.purchaseOrders.toReversed().slice(1).map(c=>e.jsx("span",{className:"text-xs font-thin font-mono",children:c},c))})]}),e.jsxs("div",{className:"space-y-0",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Payment"}),e.jsx("p",{className:"text-sm font-medium",children:qs(i.amount.raw,i.amount.currency)})]}),e.jsxs("div",{className:"space-y-0",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Billing Cycle"}),e.jsx("p",{className:"text-sm font-medium",children:$a(i.billingCycle)})]}),e.jsxs("div",{className:"space-y-0",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Subscription Plan"}),e.jsx("p",{className:"text-sm font-medium",children:i.plan?za(i.plan):"N/A"})]}),e.jsxs("div",{className:"space-y-0",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Operations Limit"}),e.jsx("p",{className:"text-sm font-medium",children:i.operationsLimit.toLocaleString()})]}),e.jsxs("div",{className:"space-y-0",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Document Type"}),e.jsx("p",{className:"text-sm font-medium",children:Ws(i.documentType)})]})]}),i.remarks&&e.jsxs("div",{className:"space-y-0",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Remark"}),e.jsx("p",{className:"text-sm",children:i.remarks})]}),e.jsx("div",{className:"flex flex-wrap gap-2",children:i.msCloud&&e.jsx(T,{variant:"outline",size:"sm",asChild:!0,children:e.jsxs("a",{href:i.msCloud.toString(),target:"_blank",rel:"noopener noreferrer",children:[e.jsx(Ks,{className:"h-4 w-4 mr-2"}),"MS Cloud",e.jsx(Ga,{className:"h-3 w-3 ml-1"})]})})})]},i.id)})})]})}function Ut({businessId:s}){return e.jsxs(M,{children:[e.jsx($,{children:e.jsx("div",{className:"flex items-center justify-between",children:e.jsxs("div",{children:[e.jsx(z,{children:"Documents"}),e.jsx(U,{children:"Invoices, proformas, receipts, and other accounting documents"})]})})}),e.jsx(G,{children:e.jsx(Hs,{businessId:s,linkedDocumentIds:[],limit:1e3})})]})}const Gt=[{id:"hive",name:"Hive",description:"Schema registry, analytics, metrics and gateway for GraphQL federation and other GraphQL APIs",status:"disconnected",lastSync:"Never"},{id:"slack",name:"Slack",description:"Team communication and notifications",status:"disconnected",lastSync:"Never"},{id:"retool",name:"Retool",description:"Internal tools and dashboards",status:"disconnected",lastSync:"Never"},{id:"linear",name:"Linear",description:"Issue tracking and project management",status:"disconnected",lastSync:"Never"},{id:"workflowy",name:"Workflowy",description:"Task management and note taking",status:"disconnected",lastSync:"Never"}];function qt({data:s}){const t=pe(Ys,s),[{data:a,fetching:n},o]=ee({query:Xs,variables:{clientId:t?.id??""},pause:!t?.clientInfo?.greenInvoiceId||!t?.id}),{updateClient:d}=Js(),l=p.useCallback((r,c)=>{if(!t?.id)return;const m={};m[c]=r,d({businessId:t?.id,fields:m})},[t?.id,d]);p.useEffect(()=>{t?.clientInfo?.greenInvoiceId&&t?.id&&o()},[t?.clientInfo?.greenInvoiceId,t?.id,o]);const i=a?.greenInvoiceClient;return e.jsxs(M,{children:[e.jsx($,{children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx(z,{children:"Integrations"}),e.jsx(U,{children:"Connected external services and providers"})]}),e.jsxs(T,{size:"sm",children:[e.jsx(re,{className:"h-4 w-4 mr-2"}),"Add Integration"]})]})}),e.jsx(G,{className:"space-y-6",children:e.jsxs(Wa,{type:"multiple",defaultValue:["green-invoice"],className:"space-y-4",children:[n?e.jsxs(Ne,{value:"green-invoice",className:"rounded-lg border-2 border-green-600/20 bg-green-600/5",children:[e.jsx("div",{className:"px-4 py-3 bg-green-600/10 rounded-t-lg",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-1",children:[e.jsx(N,{className:"h-10 w-10 rounded-lg"}),e.jsxs("div",{className:"flex-1 space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(N,{className:"h-6 w-32"}),e.jsx(N,{className:"h-5 w-5 rounded-full"})]}),e.jsx(N,{className:"h-4 w-64"})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(N,{className:"h-8 w-24"}),e.jsx(N,{className:"h-8 w-8"})]})]})}),e.jsx(be,{children:e.jsxs("div",{className:"p-6 space-y-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsx(N,{className:"h-4 w-40"}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(N,{className:"h-3 w-24"}),e.jsx(N,{className:"h-4 w-full"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(N,{className:"h-3 w-24"}),e.jsx(N,{className:"h-4 w-full"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(N,{className:"h-3 w-24"}),e.jsx(N,{className:"h-4 w-full"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(N,{className:"h-3 w-24"}),e.jsx(N,{className:"h-4 w-full"})]})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsx(N,{className:"h-4 w-40"}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(N,{className:"h-3 w-32"}),e.jsx(N,{className:"h-6 w-full"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(N,{className:"h-3 w-24"}),e.jsx(N,{className:"h-4 w-full"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(N,{className:"h-3 w-24"}),e.jsx(N,{className:"h-4 w-full"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(N,{className:"h-3 w-24"}),e.jsx(N,{className:"h-4 w-full"})]})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsx(N,{className:"h-4 w-40"}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-3",children:[e.jsxs("div",{className:"space-y-2 md:col-span-2",children:[e.jsx(N,{className:"h-3 w-24"}),e.jsx(N,{className:"h-4 w-full"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(N,{className:"h-3 w-24"}),e.jsx(N,{className:"h-4 w-full"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(N,{className:"h-3 w-24"}),e.jsx(N,{className:"h-4 w-full"})]})]})]})]})})]}):e.jsxs(Ne,{value:"green-invoice",className:"rounded-lg border-2 border-green-600/20 bg-green-600/5",children:[e.jsx("div",{className:"px-4 py-3 bg-green-600/10 rounded-t-lg",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-1",children:[e.jsx("div",{className:"h-10 w-10 rounded-lg bg-green-600 flex items-center justify-center text-white font-bold",children:"GI"}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"font-semibold text-lg",children:"Green Invoice"}),e.jsx(Ue,{className:"h-5 w-5 text-green-600"})]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Israeli invoicing system integration"})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Wt,{id:t?.clientInfo?.greenInvoiceId,provider:"Green Invoice",updateClient:async r=>l(r,"greenInvoiceId")}),e.jsx(ze,{className:"hover:no-underline p-2"})]})]})}),e.jsx(be,{children:i&&e.jsxs("div",{className:"p-6 space-y-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsx("h4",{className:"font-semibold text-sm text-muted-foreground uppercase tracking-wide",children:"Business Information"}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"Integration ID"}),e.jsx("p",{className:"text-sm font-mono",children:t?.clientInfo?.greenInvoiceId})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"Business Name"}),e.jsx("p",{className:"text-sm",children:i.name})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"Country"}),e.jsx("p",{className:"text-sm",children:i.country})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"Tax ID"}),e.jsx("p",{className:"text-sm font-mono",children:i.taxId})]})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("h4",{className:"font-semibold text-sm text-muted-foreground uppercase tracking-wide",children:"Contact Information"}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsxs("span",{className:"text-sm font-medium text-muted-foreground flex items-center gap-2",children:[e.jsx(ke,{className:"h-3.5 w-3.5"}),"Email Addresses"]}),e.jsx("div",{className:"flex flex-wrap gap-2",children:i.emails?.map((r,c)=>e.jsx("span",{className:"text-sm px-2 py-1 bg-muted rounded",children:r},c))})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsxs("span",{className:"text-sm font-medium text-muted-foreground flex items-center gap-2",children:[e.jsx(ns,{className:"h-3.5 w-3.5"}),"Phone"]}),e.jsx("p",{className:"text-sm font-mono",children:i.phone})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"Mobile"}),e.jsx("p",{className:"text-sm font-mono",children:i.mobile})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"Fax"}),e.jsx("p",{className:"text-sm font-mono",children:i.fax})]})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("h4",{className:"font-semibold text-sm text-muted-foreground uppercase tracking-wide flex items-center gap-2",children:[e.jsx(Se,{className:"h-3.5 w-3.5"}),"Address"]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-3",children:[e.jsxs("div",{className:"space-y-1 md:col-span-2",children:[e.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"Street Address"}),e.jsx("p",{className:"text-sm",children:i.address})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"City"}),e.jsx("p",{className:"text-sm",children:i.city})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"Zip Code"}),e.jsx("p",{className:"text-sm font-mono",children:i.zip})]})]})]})]})})]}),Gt.map(r=>e.jsxs(Ne,{value:r.id,className:"rounded-lg border",children:[e.jsx("div",{className:"px-4 py-3",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("div",{className:"flex items-center gap-3 flex-1",children:e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h4",{className:"font-semibold",children:r.name}),r.status==="connected"?e.jsx(Ue,{className:"h-4 w-4 text-green-600"}):e.jsx(Qs,{className:"h-4 w-4 text-muted-foreground"})]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:r.description})]})}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(T,{variant:"ghost",size:"sm",onClick:c=>c.stopPropagation(),children:e.jsx(Oe,{className:"h-4 w-4"})}),e.jsx(ze,{className:"hover:no-underline p-2"})]})]})}),e.jsx(be,{children:e.jsx("div",{className:"px-4 pb-4 pt-2 border-t",children:e.jsxs("div",{className:"text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:"Last sync: "}),e.jsx("span",{className:"font-medium",children:r.lastSync})]})})})]},r.id))]})})]})}function Wt({id:s,provider:t,updateClient:a}){const[n,o]=p.useState(!1),[d,l]=p.useState(s),i=p.useCallback(async()=>{await a(d),o(!1)},[d,a]);return e.jsxs(Je,{open:n,onOpenChange:o,children:[e.jsx(Zs,{asChild:!0,children:e.jsxs(T,{variant:"outline",size:"sm",onClick:r=>r.stopPropagation(),children:[e.jsx(Oe,{className:"h-4 w-4 mr-2"}),"Configure"]})}),e.jsxs(Qe,{onClick:r=>r.stopPropagation(),children:[e.jsxs(ea,{children:[e.jsxs(sa,{children:["Configure ",t]}),e.jsxs(aa,{children:["Update your ",t," integration settings"]})]}),e.jsx("div",{className:"space-y-4 py-4",children:e.jsxs("div",{className:"space-y-2",children:[e.jsxs(ta,{htmlFor:"id",children:[t," ID"]}),e.jsx(B,{id:"id",value:d,onChange:r=>l(r.target.value),placeholder:`Enter ${t} ID`})]})}),e.jsxs(na,{children:[e.jsx(T,{variant:"outline",onClick:()=>o(!1),children:"Cancel"}),e.jsx(T,{onClick:i,disabled:!d,children:"Save Changes"})]})]})]})}function Kt({businessId:s}){const[{data:t,fetching:a}]=ee({query:ia,variables:{businessId:s}});return a?e.jsx("div",{children:"Loading ledger records..."}):e.jsxs(M,{children:[e.jsx($,{className:"flex w-full justify-between items-center",children:e.jsx("div",{className:"flex items-center justify-between",children:e.jsxs("div",{children:[e.jsx(z,{children:"Ledger Records"}),e.jsx(U,{children:"Complete ledger history for this business"})]})})}),e.jsx(G,{children:e.jsx("div",{className:"rounded-md border",children:e.jsx(Na,{ledgerRecordsData:t?.ledgerRecordsByFinancialEntity??[]})})})]})}function Ht({businessId:s}){const[{data:t,fetching:a}]=ee({query:ra,variables:{businessId:s}});return a?e.jsx("div",{children:"Loading transactions..."}):e.jsxs(M,{children:[e.jsx($,{className:"flex w-full justify-between items-center",children:e.jsx("div",{className:"flex items-center justify-between",children:e.jsxs("div",{children:[e.jsx(z,{children:"Transactions"}),e.jsx(U,{children:"Complete transaction history for this business"})]})})}),e.jsx(G,{children:e.jsx("div",{className:"rounded-md border",children:e.jsx(qa,{transactionsProps:t?.transactionsByFinancialEntity??[]})})})]})}function Xt({data:s,refetchBusiness:t}){const a=pe(ha,s),[n,o]=la(),{setFiltersContext:d}=p.useContext(ca);p.useEffect(()=>{d(null)},[d]);const l=n.get("tab")||"contact",i=m=>{o({tab:m})};if(!a)return e.jsx("div",{children:"Business not found"});const r="clientInfo"in a&&!!a.clientInfo,c="adminInfo"in a&&!!a.adminInfo;return e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsx(fa,{data:a}),e.jsx("main",{className:"container mx-auto px-4 py-6 md:px-6 lg:px-8 max-w-7xl",children:e.jsxs(oa,{value:l,onValueChange:i,className:"w-full",children:[e.jsxs(da,{className:"grid w-full lg:grid-cols-8 sm:grid-cols-4 grid-cols-8 mb-6 h-auto gap-1 bg-muted/50 p-1",children:[e.jsxs(q,{value:"contact",className:"flex items-center gap-2 data-[state=active]:bg-background",children:[e.jsx(Ka,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Contact"})]}),e.jsxs(q,{value:"config",className:"flex items-center gap-2 data-[state=active]:bg-background",children:[e.jsx(Oe,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Config"})]}),e.jsxs(q,{value:"charges",className:"flex items-center gap-2 data-[state=active]:bg-background",children:[e.jsx(ge,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Charges"})]}),e.jsxs(q,{value:"transactions",className:"flex items-center gap-2 data-[state=active]:bg-background",children:[e.jsx(ma,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Transactions"})]}),e.jsxs(q,{value:"documents",className:"flex items-center gap-2 data-[state=active]:bg-background",children:[e.jsx(ua,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Documents"})]}),e.jsxs(q,{value:"ledger",className:"flex items-center gap-2 data-[state=active]:bg-background",children:[e.jsx(st,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Ledger"})]}),e.jsxs(q,{value:"balance",className:"flex items-center gap-2 data-[state=active]:bg-background",children:[e.jsx(Xa,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Balance"})]}),r&&e.jsxs(e.Fragment,{children:[e.jsxs(q,{value:"contracts",className:"flex items-center gap-2 data-[state=active]:bg-background",children:[e.jsx(Za,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Contracts"})]}),e.jsxs(q,{value:"integrations",className:"flex items-center gap-2 data-[state=active]:bg-background",children:[e.jsx(tt,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Integrations"})]})]}),c&&e.jsxs(q,{value:"admin",className:"flex items-center gap-2 data-[state=active]:bg-background",children:[e.jsx(as,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Admin"})]})]}),e.jsx(V,{value:"contact",className:"mt-0",children:e.jsx(Mt,{data:a,refetchBusiness:t})}),e.jsx(V,{value:"config",className:"mt-0",children:e.jsx(Pt,{data:a,refetchBusiness:t})}),e.jsx(V,{value:"charges",className:"mt-0",children:e.jsx(ht,{businessId:a.id})}),e.jsx(V,{value:"transactions",className:"mt-0",children:e.jsx(Ht,{businessId:a.id})}),e.jsx(V,{value:"documents",className:"mt-0",children:e.jsx(Ut,{businessId:a.id})}),e.jsx(V,{value:"ledger",className:"mt-0",children:e.jsx(Kt,{businessId:a.id})}),e.jsx(V,{value:"balance",className:"mt-0",children:e.jsx(ut,{businessId:a.id})}),r&&e.jsxs(e.Fragment,{children:[e.jsx(V,{value:"contracts",className:"mt-0",children:e.jsx(zt,{clientId:a.id})}),e.jsx(V,{value:"integrations",className:"mt-0",children:e.jsx(qt,{data:a})}),e.jsx(V,{value:"charts",className:"mt-0",children:e.jsx(Dt,{})})]}),c&&e.jsx(V,{value:"admin",className:"mt-0",children:e.jsx(mt,{data:a})})]})})]})}const fn=()=>{const{businessId:s}=xa();let t;try{t=pa()}catch{}const[{data:a,fetching:n},o]=ee({query:ja,pause:!s||!!t,variables:{businessId:s??""}}),d=t||a;return!t&&n&&!d?.business?e.jsx(Ye,{}):!s||!d?.business?e.jsx("div",{children:"Business not found"}):e.jsx(Xt,{data:d.business,refetchBusiness:async()=>o()})};export{fn as BusinessScreen};
@@ -1,16 +0,0 @@
1
- import{v as V,j as e,bm as q,R as ce,p as P,au as B,B as f,aM as oe,m as O,bn as $,bo as Q,bp as G,bq as R,br as de,r,D as X,aU as Y,x as J,aV as W,aW as Z,aX as ee,aY as N,al as S,am as I,an as M,ao as F,aq as x,bs as ue,bt as me,bu as xe,w as E,u as se,bv as he,G as te,bw as ge,y as je,bx as pe,c as ae,Q as fe,by as Ce,bz as ne,bA as le,bB as w,bC as p,bD as ie,bE as j,bF as ve,bG as be,av as ye,bH as De,bI as Ne,bJ as we,bK as Se,bL as Ie,bM as U,P as Me,bN as Fe,bO as Le,bP as Ae,bQ as Re,bR as Ve,a7 as ke,b as Te,bS as Pe}from"./index-Bd-SKdyy.js";import{M as Be,s as Oe,a as Ee}from"./modify-contract-dialog-BoeamC68.js";import{E as Ue}from"./eye-off-BNMLF-BO.js";import{F as ze}from"./funnel-DW3_rS_8.js";import{u as Ke,E as He}from"./edit-issue-document-modal-2d_PTbvO.js";import{s as _e}from"./subMonths-DHPWOZP6.js";/**
2
- * @license lucide-react v0.548.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const qe=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],z=V("arrow-down",qe);/**
7
- * @license lucide-react v0.548.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */const $e=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],K=V("arrow-up",$e);/**
12
- * @license lucide-react v0.548.0 - ISC
13
- *
14
- * This source code is licensed under the ISC license.
15
- * See the LICENSE file in the root directory of this source tree.
16
- */const Qe=[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]],Ge=V("chevrons-up-down",Qe),H=({timelessDate:s})=>e.jsx("p",{className:"text-sm font-medium",children:new Date(s).toLocaleDateString()});function Xe({id:s,name:t}){return e.jsx("div",{className:"flex flex-wrap flex-col justify-center",children:e.jsx(q,{to:ce.BUSINESSES.DETAIL(s),target:"_blank",rel:"noreferrer",onClick:i=>i.stopPropagation(),className:"inline-flex items-center font-semibold",children:t})})}function m({column:s,title:t,className:i}){return s.getCanSort()?e.jsx("div",{className:O("flex items-center gap-2",i),children:e.jsxs($,{children:[e.jsx(Q,{asChild:!0,children:e.jsxs(f,{variant:"ghost",size:"sm",className:"data-[state=open]:bg-accent -ml-3 h-8",children:[e.jsx("span",{children:t}),s.getIsSorted()==="desc"?e.jsx(z,{}):s.getIsSorted()==="asc"?e.jsx(K,{}):e.jsx(Ge,{})]})}),e.jsxs(G,{align:"start",children:[e.jsxs(R,{onClick:()=>s.toggleSorting(!1),children:[e.jsx(K,{}),"Asc"]}),e.jsxs(R,{onClick:()=>s.toggleSorting(!0),children:[e.jsx(z,{}),"Desc"]}),e.jsx(de,{}),e.jsxs(R,{onClick:()=>s.toggleVisibility(!1),children:[e.jsx(Ue,{}),"Hide"]})]})]})}):e.jsx("div",{className:O(i),children:t})}const _=[{id:"select",header:({table:s})=>e.jsx(P,{checked:s.getIsAllPageRowsSelected()||s.getIsSomePageRowsSelected()&&"indeterminate",onCheckedChange:t=>s.toggleAllPageRowsSelected(!!t),"aria-label":"Select all"}),cell:({row:s})=>e.jsx(P,{checked:s.getIsSelected(),onCheckedChange:t=>s.toggleSelected(!!t),"aria-label":"Select row"}),enableSorting:!1,enableHiding:!1},{accessorKey:"isActive",header:({column:s})=>e.jsx(m,{column:s,title:"Is Active"}),cell:({row:s})=>s.getValue("isActive")?e.jsx(B,{variant:"default",children:"Active"}):e.jsx(B,{variant:"destructive",children:"Inactive"})},{accessorKey:"client.name",header:({column:s})=>e.jsx(m,{column:s,title:"Client"}),cell:({row:s})=>e.jsx(Xe,{id:s.original.client.id,name:s.original.client.name})},{accessorKey:"startDate",header:({column:s})=>e.jsx(m,{column:s,title:"Start"}),cell:({row:s})=>e.jsx(H,{timelessDate:s.getValue("startDate")})},{accessorKey:"endDate",header:({column:s})=>e.jsx(m,{column:s,title:"End"}),cell:({row:s})=>e.jsx(H,{timelessDate:s.getValue("endDate")})},{accessorKey:"purchaseOrder",header:({column:s})=>e.jsx(m,{column:s,title:"Purchase Order"}),cell:({row:s})=>e.jsxs("div",{className:"flex flex-row gap-1 items-center",children:[s.original.msCloud&&e.jsx(q,{to:s.original.msCloud,target:"_blank",rel:"noreferrer",className:"size-8",children:e.jsx(f,{variant:"link",size:"sm",disabled:!0,children:e.jsx(oe,{className:"size-4"})})}),e.jsx("span",{className:"text-sm font-medium",children:s.getValue("purchaseOrder")})]})},{accessorKey:"product",header:({column:s})=>e.jsx(m,{column:s,title:"Product"}),cell:({row:s})=>e.jsx("p",{className:"text-sm font-medium",children:s.getValue("product")})},{accessorKey:"plan",header:({column:s})=>e.jsx(m,{column:s,title:"Subscription Plan"}),cell:({row:s})=>e.jsx("p",{className:"text-sm font-medium",children:s.getValue("plan")})},{accessorKey:"billingCycle",header:({column:s})=>e.jsx(m,{column:s,title:"Billing Cycle"}),cell:({row:s})=>e.jsx("p",{className:"text-sm font-medium",children:s.getValue("billingCycle")})},{accessorKey:"amount.raw",header:({column:s})=>e.jsx(m,{column:s,title:"Amount"}),cell:({row:s})=>e.jsx("p",{className:"text-sm font-medium",children:s.original.amount.formatted})},{accessorKey:"operationsLimit",header:({column:s})=>e.jsx(m,{column:s,title:"Operations Limit"}),cell:({row:s})=>{const t=s.getValue("operationsLimit");return t?e.jsx("p",{className:"text-sm font-medium",children:t}):null}},{accessorKey:"edit",header:"",cell:({row:s})=>e.jsx(Be,{clientId:s.original.client.id,contractId:s.original.id}),enableSorting:!1}];function Ye({table:s}){const[t,i]=r.useState(!1);return e.jsxs(X,{open:t,onOpenChange:i,children:[e.jsx(Y,{asChild:!0,children:e.jsx(f,{size:"sm",variant:"outline",children:e.jsx(ze,{className:"size-4"})})}),e.jsxs(J,{className:"max-w-2xl max-h-[90vh] overflow-y-auto",children:[e.jsxs(W,{children:[e.jsx(Z,{children:"Filter Contracts"}),e.jsx(ee,{children:"Filter contracts based on various criteria"})]}),e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(N,{children:"Product Type"}),e.jsxs(S,{onValueChange:a=>s.getColumn("product")?.setFilterValue(a==="NULL"?"":a),value:s.getColumn("product")?.getFilterValue(),children:[e.jsx(I,{className:"w-full",children:e.jsx(M,{})}),e.jsxs(F,{children:[e.jsx(x,{value:"NULL",className:"font-light text-xs",children:"(None)"}),Object.values(ue).map(a=>e.jsx(x,{value:a,children:a},a))]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(N,{children:"Billing Cycle"}),e.jsxs(S,{onValueChange:a=>s.getColumn("billingCycle")?.setFilterValue(a==="NULL"?"":a),value:s.getColumn("billingCycle")?.getFilterValue(),children:[e.jsx(I,{className:"w-full",children:e.jsx(M,{})}),e.jsxs(F,{children:[e.jsx(x,{value:"NULL",className:"font-light text-xs",children:"(None)"}),Object.values(me).map(a=>e.jsx(x,{value:a,children:Oe(a)},a))]})]})]})]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(N,{children:"Subscription Plan"}),e.jsxs(S,{onValueChange:a=>s.getColumn("plan")?.setFilterValue(a==="NULL"?"":a),value:s.getColumn("plan")?.getFilterValue(),children:[e.jsx(I,{className:"w-full",children:e.jsx(M,{})}),e.jsxs(F,{children:[e.jsx(x,{value:"NULL",className:"font-light text-xs",children:"(None)"}),Object.values(xe).map(a=>e.jsx(x,{value:a,children:Ee(a)},a))]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(N,{children:"Is Active"}),e.jsxs(S,{onValueChange:a=>s.getColumn("isActive")?.setFilterValue(a==="NULL"?"":a==="active"),value:Je(s.getColumn("isActive")?.getFilterValue()),children:[e.jsx(I,{className:"w-full",children:e.jsx(M,{})}),e.jsxs(F,{children:[e.jsx(x,{value:"NULL",className:"font-light text-xs",children:"(None)"}),e.jsx(x,{value:"active",children:"Active"}),e.jsx(x,{value:"inactive",children:"Inactive"})]})]})]})]})]})]})]})}function Je(s){return s===void 0?"NULL":s?"active":"inactive"}const We=({contractIds:s})=>{const[t,i]=r.useState(!1),[a,v]=r.useState(E(_e(new Date,1),"yyyy-MM-dd")),[C,h]=r.useState([]),{issueDocuments:g}=Ke(),[{data:b,fetching:y},c]=se({query:he,variables:{issueMonth:a,contractIds:s},pause:!t});r.useEffect(()=>{b?.clientChargesDraftsByContracts&&h(b.clientChargesDraftsByContracts.map(d=>te(ge,d)))},[b,h]),r.useEffect(()=>{t&&c()},[t,c]);const n=je({values:{generateDocumentsInfo:C}}),l=r.useCallback(d=>{g(d)},[g]),{fields:o,remove:L,update:re}=pe({control:n.control,name:"generateDocumentsInfo"}),k=n.watch("generateDocumentsInfo"),T=r.useMemo(()=>o.map((d,u)=>({...d,...k[u],id:d.client?.id})),[o,k]);return e.jsxs(X,{open:t,onOpenChange:i,children:[e.jsx(Y,{asChild:!0,children:e.jsx(f,{size:"sm",variant:"outline",disabled:s.length===0,children:"Issue Documents"})}),e.jsxs(J,{className:"min-w-[90vw] w-full max-h-[90vh] overflow-y-auto",children:[e.jsxs(W,{children:[e.jsx(Z,{children:"Filter Contracts"}),e.jsx(ee,{children:"Filter contracts based on various criteria"})]}),y?e.jsx(ae,{}):e.jsx(fe,{...n,children:e.jsxs("form",{onSubmit:n.handleSubmit(l),className:"min-w-5xl w-full",children:[e.jsxs("div",{className:"flex gap-2 items-center mb-4",children:[e.jsx(N,{children:"Issue Month:"}),e.jsx(Ce,{value:new Date(a),onChange:d=>{const u=new Date(d.getFullYear(),d.getMonth(),15);v(E(u,"yyyy-MM-dd"))},popoverProps:{withinPortal:!1}})]}),e.jsxs(ne,{children:[e.jsx(le,{children:e.jsxs(w,{children:[e.jsx(p,{children:"Name"}),e.jsx(p,{children:"Document"}),e.jsx(p,{children:"Amount"}),e.jsx(p,{children:"Remark"}),e.jsx(p,{children:"Recipients"}),e.jsx(p,{})]})}),e.jsx(ie,{children:T.map(({id:d,...u},A)=>e.jsxs(w,{children:[e.jsx(j,{children:u.client?.name}),e.jsx(j,{children:u.type}),e.jsxs(j,{children:[u.income?.[0]?.price," ",u.income?.[0]?.currency]}),e.jsx(j,{children:e.jsx("span",{className:"text-sm text-gray-500 whitespace-normal max-w-50",children:u.remarks})}),e.jsx(j,{children:e.jsx("div",{className:"flex flex-col",children:u.client?.emails?.map(D=>e.jsx("span",{className:"text-sm text-gray-500",children:D},D))})}),e.jsx(j,{children:e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs(ve,{children:[e.jsx(be,{asChild:!0,type:"button",children:e.jsx(f,{className:"size-7.5",variant:"secondary",onClick:()=>L(A),children:e.jsx(ye,{size:16})})}),e.jsx(De,{children:e.jsx("p",{children:"Remove document"})})]}),e.jsx(He,{draft:u,onApprove:D=>{n.setValue(`generateDocumentsInfo.${A}`,D,{shouldDirty:!0,shouldTouch:!0,shouldValidate:!0}),re(A,{...D})}})]})})]},d))})]}),e.jsx("div",{className:"flex justify-between items-center mt-4",children:e.jsx(Ne,{onConfirm:n.handleSubmit(l),title:`Are you sure you want to issue ${T.length} documents?`,children:e.jsx(f,{children:"Issue"})})})]})})]})]})};function Ze(s){const t=te(Ve,s);return{id:t.id,isActive:t.isActive,client:{id:t.client.id,name:t.client.originalBusiness.name},purchaseOrder:t.purchaseOrders[0],startDate:t.startDate,endDate:t.endDate,amount:{raw:t.amount.raw,formatted:t.amount.formatted},billingCycle:t.billingCycle,product:t.product??void 0,plan:t.plan??void 0,operationsLimit:t.operationsLimit,msCloud:t.msCloud?.toString()??void 0}}const es=({data:s})=>{const[t,i]=r.useState([{id:"endDate",desc:!0},{id:"amount.raw",desc:!0}]),[a,v]=r.useState({}),[C,h]=r.useState([]),[g,b]=r.useState([]),y=r.useMemo(()=>s.map(n=>Ze(n)),[s]),c=we({data:y,columns:_,getCoreRowModel:Re(),onSortingChange:i,getSortedRowModel:Ae(),getPaginationRowModel:Le(),onRowSelectionChange:v,onColumnFiltersChange:h,getFilteredRowModel:Fe(),state:{sorting:t,rowSelection:a,columnFilters:C},initialState:{pagination:{pageIndex:0,pageSize:50}}});return r.useEffect(()=>{console.log("Row selection changed:",a);const n=Object.entries(a).filter(([,o])=>!!o).map(([o])=>Number(o)),l=Array.from(new Set(y.filter((o,L)=>n.includes(L)).map(o=>o.id)));(g.length!==l.length||!g.every(o=>l.includes(o)))&&b(l)},[a,y,g,C]),e.jsxs("div",{className:"w-full",children:[e.jsxs("div",{className:"flex items-center py-4 gap-4",children:[e.jsx(Ye,{table:c}),e.jsxs($,{children:[e.jsx(Q,{asChild:!0,children:e.jsxs(f,{variant:"outline",children:["Columns ",e.jsx(Se,{})]})}),e.jsx(G,{align:"end",children:c.getAllColumns().filter(n=>n.getCanHide()).map(n=>e.jsx(Ie,{className:"capitalize",checked:n.getIsVisible(),onCheckedChange:l=>n.toggleVisibility(!!l),children:n.id},n.id))})]}),e.jsx("div",{className:"ml-auto",children:e.jsx(We,{contractIds:g,className:"ml-auto"})})]}),e.jsx("div",{className:"overflow-hidden rounded-md border",children:e.jsxs(ne,{children:[e.jsx(le,{children:c.getHeaderGroups().map(n=>e.jsx(w,{children:n.headers.map(l=>e.jsx(p,{colSpan:l.colSpan,children:l.isPlaceholder?null:U(l.column.columnDef.header,l.getContext())},l.id))},n.id))}),e.jsx(ie,{children:c.getRowModel().rows?.length?c.getRowModel().rows.map(n=>e.jsx(w,{children:n.getVisibleCells().map(l=>e.jsx(j,{children:U(l.column.columnDef.cell,l.getContext())},l.id))},n.id)):e.jsx(w,{children:e.jsx(j,{colSpan:_.length,className:"h-24 text-center",children:"No results."})})})]})}),e.jsxs("div",{className:"flex items-center justify-end space-x-2 py-4",children:[e.jsxs("div",{className:"text-muted-foreground flex-1 text-sm",children:[c.getFilteredSelectedRowModel().rows.length," of"," ",c.getFilteredRowModel().rows.length," row(s) selected."]}),e.jsx(Me,{className:"w-fit mx-0",value:c.getState().pagination.pageIndex,total:c.getPageCount(),onChange:n=>c.setPageIndex(n)})]})]})},rs=()=>{const{userContext:s}=r.useContext(ke),t=s?.context.adminBusinessId;let i;try{i=Te()}catch{}const[{data:a,fetching:v},C]=se({query:Pe,pause:!t||!!i,variables:{adminId:t??""}}),h=i||a;return!i&&v&&!h?.contractsByAdmin?e.jsx(ae,{}):!t||!h?.contractsByAdmin?e.jsx("div",{children:"Contracts not found"}):e.jsx(es,{data:h.contractsByAdmin,onChange:async()=>C()})};export{rs as ContractsScreen};
@@ -1 +0,0 @@
1
- import{g as v,hJ as B,r as g,t as h,i as F,ai as L,j as e,W as C,X as j,Y as f,Z as p,I as H,_ as y,$ as T,bh as V,bk as z,ar as K,ag as Q,D,aU as E,B as m,x as M,aV as A,aW as R,y as k,Q as O,hK as _,bX as J,u as P,hL as W,L as $,F as X,bJ as G,bz as Y,bA as Z,bB as b,bC as ee,bM as S,bD as se,bE as w,hM as te,bP as ae,bO as re,bQ as oe}from"./index-Bd-SKdyy.js";import{D as ne}from"./data-table-pagination-BenxjRXY.js";import{P as ie}from"./page-layout-XgNPsCmr.js";import{A as N}from"./arrow-up-down-D0e6luFS.js";const de="insertTaxCategory",ce=()=>{const[{fetching:s},n]=v(B),t=g.useCallback(async a=>{const d="Error creating tax category",r=de;h.loading("Adding Tax Category",{id:r});try{const i=await n(a),l=F(i,d,r);if(l)return h.success("Success",{id:r,description:`${l.insertTaxCategory.name} was created`}),l.insertTaxCategory}catch(i){console.error(`${d}: ${i}`),h.error("Error",{id:r,description:d,duration:1e5,closeButton:!0})}},[n]);return{fetching:s,insertTaxCategory:t}};function U({formManager:s,setFetching:n,isInsert:t}){const{control:a,watch:d,setValue:r}=s,{selectableSortCodes:i,fetching:l,sortCodes:x}=L();g.useEffect(()=>{n(l)},[n,l]);const c=d("sortCode");return g.useEffect(()=>{if(c){const o=x.find(u=>u.key===c);o?.defaultIrsCode&&r("irsCode",o.defaultIrsCode,{shouldDirty:!0})}},[c,x,r]),e.jsxs(e.Fragment,{children:[e.jsx(C,{name:"name",control:a,rules:{required:"Required",minLength:{value:2,message:"Must be at least 2 characters"}},render:({field:o,fieldState:u})=>e.jsxs(j,{children:[e.jsx(f,{children:"Name"}),e.jsx(p,{children:e.jsx(H,{...o,value:o.value??void 0,required:!0,className:t?"":y(u)})}),e.jsx(T,{})]})}),e.jsx(V,{name:"sortCode",control:a,render:({field:o,fieldState:u})=>e.jsx(z,{...o,onChange:q=>{o.onChange(Number(q))},data:i,value:o.value?.toString(),disabled:l,label:"Sort Code",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,className:t?"":y(u)})}),e.jsx(C,{name:"irsCode",control:a,render:({field:o,fieldState:u})=>e.jsxs(j,{children:[e.jsx(f,{children:"IRS Code"}),e.jsx(p,{children:e.jsx(K,{...o,className:t?"":y(u),value:o.value??void 0,hideControls:!0,decimalScale:0})}),e.jsx(T,{})]})}),e.jsx(C,{control:a,name:"taxExcluded",render:({field:o})=>e.jsxs(j,{className:"flex flex-row items-center justify-between",children:[e.jsx("div",{className:"space-y-0.5",children:e.jsx(f,{children:"Tax excluded category"})}),e.jsx(p,{children:e.jsx(Q,{onCheckedChange:o.onChange,checked:o.value??void 0})})]})})]})}function le({onAdd:s}){const[n,t]=g.useState(!1);return e.jsxs(D,{open:n,onOpenChange:t,children:[e.jsx(E,{asChild:!0,children:e.jsx(m,{children:"Add Tax Category"})}),e.jsxs(M,{className:"w-[90vw] max-w-screen-md",children:[e.jsx(A,{children:e.jsx(R,{children:"Add New Tax Category"})}),e.jsx(xe,{close:()=>t(!1),onAdd:s})]})]})}function xe({close:s,onAdd:n}){const t=k({}),{handleSubmit:a}=t,[d,r]=g.useState(!1),{insertTaxCategory:i,fetching:l}=ce(),x=c=>{c.sortCode&&=parseInt(c.sortCode.toString()),i({fields:c}).then(o=>{o?.id&&(n?.(o.id),s())})};return e.jsx(O,{...t,children:e.jsxs("form",{onSubmit:a(x),children:[e.jsx("div",{className:"flex flex-col gap-4 my-4",children:e.jsx(U,{isInsert:!0,formManager:t,setFetching:r})}),e.jsx("div",{className:"flex justify-end mt-4",children:e.jsx(m,{type:"submit",disabled:l||d,children:"Add Tax Category"})})]})})}const ge="updateTaxCategory",ue=()=>{const[{fetching:s},n]=v(_),t=g.useCallback(async a=>{const d="Error updating tax category",r=`${ge}-${a.taxCategoryId}`;h.loading("Uploading Tax Category",{id:r});try{const i=await n(a),l=F(i,d,r,"updateTaxCategory");if(l)return h.success("Success",{id:r,description:`${l.updateTaxCategory.name} was updated`}),l.updateTaxCategory}catch(i){console.error(`${d}: ${i}`),h.error("Error",{id:r,description:d,duration:1e5,closeButton:!0})}},[n]);return{fetching:s,updateTaxCategory:t}};function he({taxCategoryId:s,onAdd:n}){const[t,a]=g.useState(!1);return e.jsxs(D,{open:t,onOpenChange:a,children:[e.jsx(E,{asChild:!0,children:e.jsx(m,{variant:"outline",size:"icon",children:e.jsx(J,{})})}),e.jsxs(M,{className:"w-[400px] max-w-screen-md",children:[e.jsx(A,{children:e.jsx(R,{children:"Edit Tax Category"})}),e.jsx(me,{taxCategoryId:s,close:()=>a(!1),onAdd:n})]})]})}function me({taxCategoryId:s,close:n,onAdd:t}){const[{data:a,fetching:d}]=P({query:W,variables:{id:s}}),r=a?.taxCategory;return!r&&!d&&h.error("Error",{description:"Couldn'nt find tax category"}),d?e.jsx($,{className:"h-10 w-10 animate-spin"}):e.jsx(Ce,{taxCategory:r,close:n,onAdd:t})}function Ce({taxCategory:s,close:n,onAdd:t}){const a=k({defaultValues:{sortCode:s.sortCode?.key,name:s.name,irsCode:s.irsCode}}),{handleSubmit:d}=a,[r,i]=g.useState(!1),{updateTaxCategory:l,fetching:x}=ue(),c=o=>{o.sortCode&&=parseInt(o.sortCode.toString()),l({fields:o,taxCategoryId:s.id}).then(u=>{u?.id&&(t?.(u.id),n())})};return e.jsx(O,{...a,children:e.jsxs("form",{onSubmit:d(c),children:[e.jsx("div",{className:"flex flex-col gap-4 my-4",children:e.jsx(U,{isInsert:!1,formManager:a,setFetching:i})}),e.jsx("div",{className:"flex justify-end mt-4",children:e.jsx(m,{type:"submit",disabled:x||r,children:"Update"})})]})})}const je=({data:s})=>e.jsx("td",{children:s.name}),fe=({data:s})=>e.jsx("td",{children:s.sortCode?e.jsxs("span",{children:[s.sortCode?.name," (",s.sortCode?.id,")"]}):"N/A"}),I=[{id:"name",accessorKey:"name",cell:({row:s})=>e.jsx(je,{data:s.original}),header:({column:s})=>e.jsxs(m,{variant:"ghost",onClick:()=>s.toggleSorting(s.getIsSorted()==="asc"),children:["Name",e.jsx(N,{})]})},{id:"sortCode",accessorKey:"sortCode.key",cell:({row:s})=>e.jsx(fe,{data:s.original}),header:({column:s})=>e.jsxs(m,{variant:"ghost",onClick:()=>s.toggleSorting(s.getIsSorted()==="asc"),children:["Sort Code",e.jsx(N,{})]})},{id:"edit",cell:({row:s})=>e.jsx(he,{taxCategoryId:s.original.id})}],Se=()=>{const[{data:s,fetching:n,error:t},a]=P({query:te}),{setFiltersContext:d}=g.useContext(X),r=s?.taxCategories??[],i=G({data:r,columns:I,getCoreRowModel:oe(),getPaginationRowModel:re(),getSortedRowModel:ae(),initialState:{pagination:{pageSize:30}}}),l=i.getPageOptions();return g.useEffect(()=>{d(e.jsx("div",{className:"flex items-center justify-end gap-10 space-x-2 py-4",children:e.jsx("div",{className:"flex items-center justify-between px-2",children:e.jsx(ne,{table:i})})}))},[d,i,l]),g.useEffect(()=>{t&&h.error("Error",{description:"Error fetching tax categories"})},[t]),e.jsx(ie,{title:`Tax Categories (${r.length})`,description:"All tax categories",headerActions:e.jsx(le,{onAdd:()=>a()}),children:n?e.jsx("div",{className:"flex flex-row justify-center",children:e.jsx($,{className:"h-10 w-10 animate-spin mr-2"})}):e.jsx("div",{className:"flex flex-col gap-4 rounded-md border",children:e.jsxs(Y,{children:[e.jsx(Z,{children:i.getHeaderGroups().map(x=>e.jsx(b,{children:x.headers.map(c=>e.jsx(ee,{children:c.isPlaceholder?null:S(c.column.columnDef.header,c.getContext())},c.id))},x.id))}),e.jsx(se,{children:i.getRowModel().rows.length===0?e.jsx(b,{children:e.jsx(w,{colSpan:I.length,className:"text-center py-8",children:"No tax categories found"})}):i.getRowModel().rows.map(x=>e.jsx(b,{children:x.getVisibleCells().map(c=>e.jsx(w,{children:S(c.column.columnDef.cell,c.getContext())},c.id))},x.id))})]})})})};export{Se as TaxCategories};
@@ -1 +0,0 @@
1
- import{j as e,T as se,B as q,at as ae,bg as ne,u as I,hd as te,r as x,a7 as H,he as oe,hf as z,y as G,t as f,Q as le,ee as ie,by as V,bh as u,bk as k,W as de,hg as ce,X as me,Y as ue,Z as xe,I as ye,$ as pe,cg as g,ce as S,w as E,a4 as ge,g as W,hh as he,i as Y,hi as je,ej as J,d as fe,hj as ve,gM as be,be as Ne,bl as Se,G as w,hk as Ee,hl as we,hm as Fe,hn as Ce,ho as Ie,fJ as De,hp as Ae,hq as Pe,hr as Re,F as Te,L as ke,hs as Me}from"./index-Bd-SKdyy.js";import{u as Q}from"./use-url-query-5TFyEk1x.js";import{P as Be}from"./page-layout-XgNPsCmr.js";import{P as Le}from"./modal-CwuHXtxz.js";import{F as Ze}from"./funnel-DW3_rS_8.js";import{M as $e}from"./MultiSelect-SsgUtHuW.js";function _(t){return e.jsx(se,{disabled:!t.tooltip,label:t.tooltip,children:e.jsx(q,{variant:"ghost",size:"icon",className:"size-7.5",...t,children:e.jsx(ae,{className:"size-5"})})})}const X=({isNewInsert:t=!0,defaultValues:s,month:l,onDone:d,isModifying:o})=>{const{selectableBusinesses:i,fetching:n}=ne(),[{data:c,fetching:y,error:j}]=I({query:te}),{userContext:v}=x.useContext(H),[{data:b,fetching:F,error:R}]=I({query:oe}),[{data:D,fetching:M,error:C}]=I({query:z,variables:{employerId:v?.context.adminBusinessId??""}}),[p,N]=x.useState([]),[A,T]=x.useState([]),[K,ee]=x.useState([]),P=s?.month??l,Z=G({defaultValues:{...s,month:P}}),{control:m,handleSubmit:$,formState:{dirtyFields:O},setValue:B}=Z;x.useEffect(()=>{j&&f.error("Error",{description:"Oh no!, we have an error fetching pension funds! 🤥"})},[j]),x.useEffect(()=>{R&&f.error("Error",{description:"Oh no!, we have an error fetching training funds! 🤥"})},[R]),x.useEffect(()=>{C&&f.error("Error",{description:"Oh no!, we have an error employees! 🤥"})},[C]),x.useEffect(()=>{c?.allPensionFunds?.length&&N(c.allPensionFunds.map(r=>({value:r.id,label:r.name})).sort((r,a)=>r.label>a.label?1:-1))},[c,T]),x.useEffect(()=>{b?.allTrainingFunds?.length&&T(b.allTrainingFunds.map(r=>({value:r.id,label:r.name})).sort((r,a)=>r.label>a.label?1:-1))},[b,T]),x.useEffect(()=>{D?.employeesByEmployerId.length&&ee(D.employeesByEmployerId.filter(r=>!r.name.toLocaleLowerCase().includes("batched")).map(r=>({value:r.id,label:r.name})).sort((r,a)=>r.label>a.label?1:-1))},[D,T]),x.useEffect(()=>{!s?.employer&&v?.context.adminBusinessId&&B("employer",v.context.adminBusinessId,{shouldDirty:!0,shouldTouch:!0})},[B,s?.employer,v?.context.adminBusinessId]);const U=r=>{const a=ge(r,O);if(!(t&&(!a?.directPaymentAmount||!a?.employeeId||!a?.employer||!a?.month)))if(a&&Object.keys(a).length>0){if(!t){if(!s)return;a.employeeId??=s.employeeId,a.month??=s.month}d(a)}else d()};function re(r){B("month",E(r,"yyyy-MM-dd"),{shouldDirty:!0,shouldTouch:!0})}return e.jsx(le,{...Z,children:e.jsxs("form",{onSubmit:$(U),children:[e.jsx("div",{className:"flex-row px-10 h-max justify-start block",children:e.jsxs(ie,{cols:4,children:[e.jsxs("div",{className:"flex-column h-max justify-start block",children:[e.jsx(V,{defaultDate:P?new Date(P):void 0,defaultValue:P?new Date(P):void 0,onChange:re,popoverProps:{withinPortal:!0}}),e.jsx(u,{name:"employer",control:m,defaultValue:s?.employer,rules:{required:"Required"},render:({field:r,fieldState:a})=>e.jsx(k,{...r,data:i,value:r.value,disabled:n,label:"Employer",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:a.error?.message})}),e.jsx(de,{name:"chargeId",control:m,defaultValue:s?.chargeId,rules:{pattern:{value:ce,message:"Invalid UUID"}},render:({field:r})=>e.jsxs(me,{children:[e.jsx(ue,{children:"Charge ID"}),e.jsx(xe,{children:e.jsx(ye,{...r,value:r.value??void 0})}),e.jsx(pe,{})]})}),e.jsx(u,{name:"employeeId",control:m,defaultValue:s?.employeeId,rules:{required:"Required"},render:({field:r,fieldState:a})=>e.jsx(k,{...r,data:K,value:r.value,disabled:M,label:"Employee",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:a.error?.message})})]}),e.jsxs("div",{className:"flex-row px-10 h-max justify-start block",children:[e.jsx(u,{name:"baseSalary",control:m,defaultValue:s?.baseSalary,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Base Salary",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"globalAdditionalHours",control:m,defaultValue:s?.globalAdditionalHours,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Global Additional Hours",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"bonus",control:m,defaultValue:s?.bonus,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Bonus",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"gift",control:m,defaultValue:s?.gift,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Gift",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"travelAndSubsistence",control:m,defaultValue:s?.travelAndSubsistence,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Travel and Subsistence",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"recovery",control:m,defaultValue:s?.recovery,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Recovery",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency"}})}),e.jsx(u,{name:"vacationTakeout",control:m,defaultValue:s?.vacationTakeout,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Vacation Takeout",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"directPaymentAmount",control:m,defaultValue:s?.directPaymentAmount,rules:{required:"Required"},render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Direct Payment",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})})]}),e.jsxs("div",{className:"flex-row px-10 h-max justify-start block",children:[e.jsx(u,{name:"pensionFundId",control:m,defaultValue:s?.pensionFundId,render:({field:r,fieldState:a})=>e.jsx(k,{...r,data:p,value:r.value,disabled:y,label:"Pension Fund",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:a.error?.message})}),e.jsx(u,{name:"pensionEmployeeAmount",control:m,defaultValue:s?.pensionEmployeeAmount,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Pension Employee Amount",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"pensionEmployeePercentage",control:m,defaultValue:s?.pensionEmployeePercentage,render:({field:{value:r,...a},fieldState:h})=>e.jsx(S,{...a,hideControls:!0,precision:2,removeTrailingZeros:!0,rightSection:"%",value:r??void 0,error:h.error?.message,label:"Pension Employee Percentage"})}),e.jsx(u,{name:"pensionEmployerAmount",control:m,defaultValue:s?.pensionEmployerAmount,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Pension Employer Amount",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"pensionEmployerPercentage",control:m,defaultValue:s?.pensionEmployerPercentage,render:({field:{value:r,...a},fieldState:h})=>e.jsx(S,{...a,hideControls:!0,precision:2,removeTrailingZeros:!0,rightSection:"%",value:r??void 0,error:h.error?.message,label:"Pension Employer Percentage"})})]}),e.jsxs("div",{className:"flex-row px-10 h-max justify-start block",children:[e.jsx(u,{name:"compensationsEmployerAmount",control:m,defaultValue:s?.compensationsEmployerAmount,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Compensations Amount",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"compensationsEmployerPercentage",control:m,defaultValue:s?.compensationsEmployerPercentage,render:({field:{value:r,...a},fieldState:h})=>e.jsx(S,{...a,hideControls:!0,precision:2,removeTrailingZeros:!0,rightSection:"%",value:r??void 0,error:h.error?.message,label:"Compensations Percentage"})})]}),e.jsxs("div",{className:"flex-row px-10 h-max justify-start block",children:[e.jsx(u,{name:"trainingFundId",control:m,defaultValue:s?.trainingFundId,render:({field:r,fieldState:a})=>e.jsx(k,{...r,data:A,value:r.value,disabled:F,label:"Training Fund",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:a.error?.message})}),e.jsx(u,{name:"trainingFundEmployeeAmount",control:m,defaultValue:s?.trainingFundEmployeeAmount,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Training Employee Amount",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"trainingFundEmployeePercentage",control:m,defaultValue:s?.trainingFundEmployeePercentage,render:({field:{value:r,...a},fieldState:h})=>e.jsx(S,{...a,hideControls:!0,precision:2,removeTrailingZeros:!0,rightSection:"%",value:r??void 0,error:h.error?.message,label:"Training Employee Percentage"})}),e.jsx(u,{name:"trainingFundEmployerAmount",control:m,defaultValue:s?.trainingFundEmployerAmount,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Training Employer Amount",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"trainingFundEmployerPercentage",control:m,defaultValue:s?.trainingFundEmployerPercentage,render:({field:{value:r,...a},fieldState:h})=>e.jsx(S,{...a,hideControls:!0,precision:2,removeTrailingZeros:!0,rightSection:"%",value:r??void 0,error:h.error?.message,label:"Training Employer Percentage"})})]}),e.jsxs("div",{className:"flex-row px-10 h-max justify-start block",children:[e.jsx(u,{name:"socialSecurityAmountEmployee",control:m,defaultValue:s?.socialSecurityAmountEmployee,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Social Security - Employee",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"socialSecurityAmountEmployer",control:m,defaultValue:s?.socialSecurityAmountEmployer,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Social Security - Employer",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"healthPaymentAmount",control:m,defaultValue:s?.healthPaymentAmount,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Health Insurance",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})})]}),e.jsxs("div",{className:"flex-row px-10 h-max justify-start block",children:[e.jsx(u,{name:"taxAmount",control:m,defaultValue:s?.taxAmount,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Income Tax",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"zkufot",control:m,defaultValue:s?.zkufot,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,precision:0,label:"Notional Expense",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})})]}),e.jsxs("div",{className:"flex-row px-10 h-max justify-start block",children:[e.jsx(u,{name:"workDays",control:m,defaultValue:s?.workDays,render:({field:{value:r,...a},fieldState:h})=>e.jsx(S,{...a,hideControls:!0,precision:2,removeTrailingZeros:!0,value:r??void 0,error:h.error?.message,label:"Work Days"})}),e.jsx(u,{name:"addedVacationDays",control:m,defaultValue:s?.addedVacationDays,render:({field:{value:r,...a},fieldState:h})=>e.jsx(S,{...a,hideControls:!0,precision:2,removeTrailingZeros:!0,value:r??void 0,error:h.error?.message,label:"Added Vacation Days"})}),e.jsx(u,{name:"vacationDaysBalance",control:m,defaultValue:s?.vacationDaysBalance,render:({field:{value:r,...a},fieldState:h})=>e.jsx(S,{...a,hideControls:!0,precision:2,removeTrailingZeros:!0,value:r??void 0,error:h.error?.message,label:"Vacation Days Balance"})}),e.jsx(u,{name:"sicknessDaysBalance",control:m,defaultValue:s?.sicknessDaysBalance,render:({field:{value:r,...a},fieldState:h})=>e.jsx(S,{...a,hideControls:!0,precision:2,removeTrailingZeros:!0,value:r??void 0,error:h.error?.message,label:"Sickness Days Balance"})})]})]})}),e.jsxs("div",{className:"mt-10 mb-5 flex justify-center gap-5",children:[e.jsx("button",{type:"submit",onClick:()=>$(U),className:"mt-8 text-white bg-indigo-500 border-0 py-2 px-8 focus:outline-hidden hover:bg-indigo-600 rounded-sm text-lg",disabled:o||Object.keys(O).length===0,children:"Accept"}),e.jsx("button",{type:"button",className:"mt-8 text-white bg-rose-500 border-0 py-2 px-8 focus:outline-hidden hover:bg-rose-600 rounded-sm text-lg",onClick:()=>d(),children:"Cancel"})]})]})})},Oe="updateSalaryRecord",Ue=()=>{const[{fetching:t},s]=W(he),l=x.useCallback(async d=>{const o=`Error updating salary record [${d.salaryRecord.month}] employee [${d.salaryRecord.employeeId}]`,i=Oe;f.loading("Updating Salary Record",{id:i});try{const n=await s(d),c=Y(n,o,i,"updateSalaryRecord");if(c)return f.success("Success",{id:i,description:"Salary record was updated"}),c.updateSalaryRecord.salaryRecord}catch(n){console.error(`${o}: ${n}`),f.error("Error",{id:i,description:o,duration:1e5,closeButton:!0})}},[s]);return{fetching:t,updateSalaryRecord:l}},qe=({recordVariables:t,onDone:s})=>t?e.jsx(He,{recordVariables:t,onDone:s}):null,He=({recordVariables:t,onDone:s})=>{const{updateSalaryRecord:l,fetching:d}=Ue(),[{data:o,fetching:i}]=I({query:je,variables:{employeeIDs:[t.employeeId],month:E(new Date(t.month),"yyyy-MM-dd")}}),n=o?.salaryRecordsByDates?.[0],c=x.useCallback(j=>{s(),j&&l({salaryRecord:j})},[s,l]);if(!n?.employer?.id||!n?.employee?.id)return e.jsx(e.Fragment,{});const y={addedVacationDays:n?.vacationDays?.added,baseSalary:n?.baseAmount?.raw,bonus:n?.bonus?.raw,chargeId:n?.charge?.id,compensationsEmployerAmount:n?.compensationsAmount?.raw,compensationsEmployerPercentage:n?.compensationsPercentage,directPaymentAmount:n?.directAmount?.raw,employer:n.employer.id,employeeId:n.employee.id,gift:n?.gift?.raw,globalAdditionalHours:n?.globalAdditionalHoursAmount?.raw,healthPaymentAmount:n?.healthInsuranceAmount?.raw,month:n?.month,pensionEmployeeAmount:n?.pensionEmployeeAmount?.raw,pensionEmployeePercentage:n?.pensionEmployeePercentage,pensionEmployerAmount:n?.pensionEmployerAmount?.raw,pensionEmployerPercentage:n?.pensionEmployerPercentage,pensionFundId:n?.pensionFund?.id,recovery:n?.recovery?.raw,sicknessDaysBalance:n?.sicknessDays?.balance,socialSecurityAmountEmployee:n?.socialSecurityEmployeeAmount?.raw,socialSecurityAmountEmployer:n?.socialSecurityEmployerAmount?.raw,taxAmount:n?.incomeTaxAmount?.raw,trainingFundEmployeeAmount:n?.trainingFundEmployeeAmount?.raw,trainingFundEmployeePercentage:n?.trainingFundEmployeePercentage,trainingFundEmployerAmount:n?.trainingFundEmployerAmount?.raw,trainingFundEmployerPercentage:n?.trainingFundEmployerPercentage,trainingFundId:n?.trainingFund?.id,travelAndSubsistence:n?.travelAndSubsistence?.raw,vacationDaysBalance:n?.vacationDays?.balance,vacationTakeout:n?.vacationTakeout?.raw,workDays:n?.workDays,zkufot:n?.notionalExpense?.raw};return e.jsx(J,{modalSize:"fit-content",position:"bottom",title:e.jsxs("div",{className:"flex flex-row mx-3 pt-3 sm:text-1xl gap-10",children:[e.jsx("h1",{className:"sm:text-2xl font-small text-gray-900",children:"Edit Salary Record:"}),e.jsxs("div",{className:"flex flex-row gap-2",children:["month: ",t.month," employeeId: ",t.employeeId]})]}),opened:!!t,onClose:s,children:i||!n?e.jsx(fe,{className:"flex self-center my-5",color:"dark",size:"xl",variant:"dots"}):e.jsx(X,{isNewInsert:!1,defaultValues:y,onDone:c,isModifying:d})})},ze="insertSalaryRecords",Ge=()=>{const[{fetching:t},s]=W(ve),l=x.useCallback(async d=>{const o=ze;if(f.loading("Adding salary record",{id:o}),!d.salaryRecords||Array.isArray(d.salaryRecords)&&d.salaryRecords.length===0){f.error("Error",{id:o,description:"No salary records to insert",duration:1e5,closeButton:!0});return}const i=Array.isArray(d.salaryRecords)?d.salaryRecords[0]:d.salaryRecords;if(!i?.directPaymentAmount||!i?.employeeId||!i?.employer||!i?.month){f.error("Error",{id:o,description:"Missing required salary record fields",duration:1e5,closeButton:!0});return}const n=`Error adding salary record [${i.month}] employee [${i.employeeId}]`;try{const c=await s(d),y=Y(c,n,o,"insertSalaryRecords");if(y)return f.success("Success",{id:o,description:"Salary record was added"}),y.insertSalaryRecords.salaryRecords[0]}catch(c){console.error(`${n}: ${c}`),f.error("Error",{id:o,description:n,duration:1e5,closeButton:!0})}},[s]);return{fetching:t,insertSalaryRecord:l}},Ve=({insertSalaryRecordParams:t,setInsertSalaryRecord:s})=>{const{insertSalaryRecord:l,fetching:d}=Ge(),o=x.useCallback(i=>{i&&l({salaryRecords:[i]}),s(void 0)},[s,l]);return e.jsx(J,{modalSize:"40%",position:"bottom",title:e.jsx("div",{className:"flex flex-row mx-3 pt-3 sm:text-1xl gap-10",children:e.jsx("h1",{className:"sm:text-2xl font-small text-gray-900",children:"Insert Salary Record:"})}),opened:!!t,onClose:()=>s(void 0),children:e.jsx(X,{isNewInsert:!0,onDone:o,isModifying:d,month:t.month})})};function L(){const t=new Date,s=E(t,"yyyy-MM-dd"),l=E(be(t),"yyyy-MM-dd");return{fromDate:s,toDate:l}}function We({filter:t,setFilter:s,closeModal:l}){const{control:d,handleSubmit:o,setValue:i}=G({defaultValues:{...t}}),[n,c]=x.useState([]),{userContext:y}=x.useContext(H),[{data:j,fetching:v,error:b},F]=I({query:z,variables:{employerId:y?.context.adminBusinessId??""},pause:!0});x.useEffect(()=>{F()},[y?.context.adminBusinessId,F]),x.useEffect(()=>{b&&f.error("Error",{description:"Oh no!, we have an error fetching employees! 🤥"})},[b]);const R=p=>{p.employeeIDs?.length===0&&delete p.employeeIDs,s(p),l()};function D(){s({...L()}),l()}x.useEffect(()=>{j?.employeesByEmployerId.length&&c(j.employeesByEmployerId.filter(p=>!p.name.toLocaleLowerCase().includes("batched")).map(p=>({value:p.id,label:p.name})).sort((p,N)=>p.label>N.label?1:-1))},[j,c]);function M([p,N]){if(N){const A=new Date(N.getFullYear(),N.getMonth()+1,0);i("toDate",E(A,"yyyy-MM-dd"))}if(p){const A=new Date(p.getFullYear(),p.getMonth(),1);i("fromDate",E(A,"yyyy-MM-dd"))}}const C=L();return e.jsxs(e.Fragment,{children:[v?e.jsx("div",{children:"Loading..."}):e.jsx("div",{}),e.jsxs("form",{onSubmit:o(R),children:[e.jsx(V,{type:"range",numberOfColumns:2,defaultValue:[new Date(t?.fromDate??C.fromDate),new Date(t?.toDate??C.toDate)],defaultDate:new Date(t?.fromDate??C.fromDate),onChange:M,popoverProps:{withinPortal:!0}}),e.jsx(u,{name:"employeeIDs",control:d,defaultValue:t.employeeIDs,render:({field:p,fieldState:N})=>e.jsx($e,{...p,data:n,value:p.value??[],disabled:v,label:"Employees",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:N.error?.message})}),e.jsxs("div",{className:"flex justify-center mt-5 gap-3",children:[e.jsx("button",{type:"submit",disabled:v,className:"text-white bg-indigo-500 border-0 py-2 px-8 focus:outline-hidden hover:bg-indigo-600 rounded-sm text-lg",children:"Filter"}),e.jsx("button",{type:"button",className:"text-white bg-orange-500 border-0 py-2 px-8 focus:outline-hidden hover:bg-orange-600 rounded-sm text-lg",onClick:D,children:"Clear"}),e.jsx("button",{type:"button",className:"text-white bg-rose-500 border-0 py-2 px-8 focus:outline-hidden hover:bg-rose-600 rounded-sm text-lg",onClick:l,children:"Cancel"})]})]})]})}function Ye({filter:t,setFilter:s}){const[l,d]=x.useState(!1),{get:o,set:i}=Q();x.useEffect(()=>{const c=Ne(t)?null:encodeURIComponent(JSON.stringify(t)),y=o("salariesFilters");c!==y&&i("salariesFilters",c)},[t,o,i]);const n=x.useCallback(c=>{Se(c,t)||s(c)},[t,s]);return e.jsxs("div",{className:"flex flex-row gap-5 items-center",children:[e.jsx(Le,{opened:l,onClose:()=>d(!1),content:e.jsx(We,{filter:t,setFilter:n,closeModal:()=>d(!1)}),modalSize:"xl"}),e.jsx(q,{variant:"outline",size:"icon",className:"size-7.5",onClick:()=>d(!0),children:e.jsx(Ze,{className:"size-5"})})]})}const Je=({month:t,setInsertSalaryRecord:s})=>{const l=E(new Date(t),"MMMM yyyy");return e.jsx("tr",{tabIndex:0,className:"h-16 rounded-sm",children:e.jsx("td",{colSpan:100,children:e.jsxs("div",{className:"flex justify-between pl-5",children:[e.jsx("p",{className:"text-lg font-bold text-gray-800",children:l}),e.jsx("div",{className:"flex items-center",children:e.jsx("div",{className:"flex flex-col",children:e.jsx(_,{onClick:s})})})]})})})},Qe=({data:t})=>{const{employee:s,month:l}=w(Ee,t),d=E(new Date(l),"MMMM yyyy");return e.jsx("td",{className:"",children:e.jsx("div",{className:"flex items-center pl-5",children:e.jsxs("div",{className:"flex flex-col",children:[e.jsx("p",{className:"text-base font-bold text-gray-800",children:s?.name}),e.jsx("p",{className:"text-base font-medium text-gray-800",children:d})]})})})},_e=({data:t})=>{const{pensionEmployeeAmount:s,pensionEmployeePercentage:l,pensionEmployerAmount:d,pensionEmployerPercentage:o,compensationsAmount:i,compensationsPercentage:n,pensionFund:c,trainingFund:y,trainingFundEmployeeAmount:j,trainingFundEmployeePercentage:v,trainingFundEmployerAmount:b,trainingFundEmployerPercentage:F}=w(we,t);return e.jsx("td",{className:"pl-5",children:e.jsx("div",{className:"flex items-center",children:e.jsxs("div",{className:"flex flex-col",children:[e.jsx("p",{className:"text-md font-bold text-gray-800",children:"Pension Fund"}),e.jsx("p",{className:"text-md font-medium text-gray-800",children:c?.name}),!!s?.raw&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Employee Part:"}),e.jsxs("p",{className:"text-sm leading-none text-gray-600 ml-2",children:[s?.formatted,l&&` (${l}%)`]})]}),!!d?.raw&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Employer Part:"}),e.jsxs("p",{className:"text-sm leading-none text-gray-600 ml-2",children:[d?.formatted,o&&` (${o}%)`]})]}),!!i?.raw&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Compensations Amount:"}),e.jsxs("p",{className:"text-sm leading-none text-gray-600 ml-2",children:[i?.formatted,n&&` (${n}%)`]})]}),e.jsx("p",{className:"text-md font-bold text-gray-800 mt-2",children:"Training Fund"}),e.jsx("p",{className:"text-md font-medium text-gray-800",children:y?.name}),!!j?.raw&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Employee Part:"}),e.jsxs("p",{className:"text-sm leading-none text-gray-600 ml-2",children:[j?.formatted,v&&` (${v}%)`]})]}),!!b?.raw&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Employer Part:"}),e.jsxs("p",{className:"text-sm leading-none text-gray-600 ml-2",children:[b?.formatted,F&&` (${F}%)`]})]})]})})})},Xe=({data:t})=>{const{healthInsuranceAmount:s,socialSecurityEmployeeAmount:l,socialSecurityEmployerAmount:d,incomeTaxAmount:o,notionalExpense:i}=w(Fe,t),n=!!l||!!d;return e.jsx("td",{className:"pl-5",children:e.jsx("div",{className:"flex items-center pl-5",children:e.jsxs("div",{className:"flex flex-col",children:[n&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"text-md font-bold text-gray-800",children:"Social Security"}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Employee Part:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:l?.formatted})]}),e.jsx("p",{className:"text-md font-bold text-gray-800 mt-2",children:"Pension Fund"}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Employer Part:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:d?.formatted})]})]}),!!s?.raw&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"text-md font-bold text-gray-800 mt-2",children:"Health Insurance"}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Amount:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:s?.formatted})]})]}),(!!o?.raw||!!i?.raw)&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"text-md font-bold text-gray-800 mt-2",children:"Taxes"}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Income Tax:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:o?.formatted})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Notional Expense:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:i?.formatted})]})]})]})})})},Ke=({data:t})=>{const{baseAmount:s,directAmount:l,globalAdditionalHoursAmount:d,bonus:o,gift:i,recovery:n,vacationTakeout:c}=w(Ce,t);return e.jsx("td",{className:"pl-24",children:e.jsx("div",{className:"flex items-center",children:e.jsxs("div",{className:"flex flex-col",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Base Amount:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:s?.formatted})]}),e.jsxs("div",{className:"flex justify-between mb-2",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Global Extra Hours:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:d?.formatted})]}),!!o?.raw&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Bonus:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:o?.formatted})]}),!!i?.raw&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Gift:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:i?.formatted})]}),!!n?.raw&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Recovery:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:n?.formatted})]}),!!c?.raw&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Vacation Takeout:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:c?.formatted})]}),e.jsxs("div",{className:"flex justify-between mt-2",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Direct Amount:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:l?.formatted})]})]})})})},er=({data:t})=>{const{vacationDays:s,workDays:l,sicknessDays:d}=w(Ie,t),{added:o,taken:i,balance:n}=s??{},{balance:c}=d??{},y=!!o||!!i||!!n;return e.jsx("td",{className:"pl-5",children:e.jsx("div",{className:"flex items-center",children:e.jsxs("div",{className:"flex flex-col",children:[!!l&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"text-md leading-none text-gray-800",children:"Work Days:"}),e.jsx("div",{className:"flex justify-between",children:e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:l})})]}),y&&e.jsxs("div",{className:"flex flex-col",children:[e.jsx("p",{className:"text-md leading-none text-gray-800 mt-2",children:"Vacation Days:"}),!!o&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Added:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:o})]}),!!i&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Taken:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:i})]}),!!n&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Balance:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:n})]})]}),!!c&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"text-md leading-none text-gray-800 mt-2",children:"Sickness Days:"}),e.jsx("div",{className:"flex justify-between",children:e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:c})})]})]})})})},rr=({setEditSalaryRecord:t,data:s})=>{const l=w(Ae,s);return e.jsxs(e.Fragment,{children:[e.jsxs("tr",{tabIndex:0,className:"h-16 border border-gray-100 hover:bg-gray-100 rounded-sm",children:[e.jsx(Qe,{data:l}),e.jsx(Ke,{data:l}),e.jsx(_e,{data:l}),e.jsx(Xe,{data:l}),e.jsx(er,{data:l}),e.jsx("td",{className:"pl-2",children:e.jsx("div",{className:"flex items-center",children:e.jsx("div",{className:"flex flex-col",children:e.jsx(De,{onClick:t})})})})]}),e.jsx("tr",{className:"h-3"})]})},sr=({setEditSalaryRecord:t,setInsertSalaryRecord:s,data:l})=>{const d=l?.map(o=>w(Pe,o))??[];return e.jsxs(e.Fragment,{children:[e.jsx("tr",{className:"h-3"}),e.jsx(Je,{month:d[0].month,setInsertSalaryRecord:s}),e.jsx("tr",{className:"h-3"}),d.map(o=>e.jsx(rr,{data:o,setEditSalaryRecord:()=>t(o.employee?.id)},`${o.month} ${o.employee?.id}`))]})},ar=({setEditSalaryRecord:t,setInsertSalaryRecord:s,data:l})=>{const d=x.useMemo(()=>{const o=l?.map(n=>w(Re,n))??[],i=new Map;return o.map(n=>{const{month:c}=n,y=i.get(c)??[];i.set(c,[...y,n])}),i},[l]);return e.jsx("div",{className:"sm:px-6 w-full",children:e.jsxs("div",{className:"bg-white py-4 md:py-7 px-4 md:px-8 xl:px-10",children:[e.jsxs("div",{className:"sm:flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:"rounded-full focus:outline-hidden focus:ring-2 focus:bg-indigo-50 focus:ring-indigo-800",children:e.jsx("div",{className:"py-2 px-8 bg-indigo-100 text-indigo-700 rounded-full",children:e.jsx("p",{children:"All"})})}),e.jsx("div",{className:"rounded-full focus:outline-hidden focus:ring-2 focus:bg-indigo-50 focus:ring-indigo-800 ml-4 sm:ml-8",children:e.jsx("div",{className:"py-2 px-8 text-gray-600 hover:text-indigo-700 hover:bg-indigo-100 rounded-full ",children:e.jsx("p",{children:"Done"})})}),e.jsx("div",{className:"rounded-full focus:outline-hidden focus:ring-2 focus:bg-indigo-50 focus:ring-indigo-800 ml-4 sm:ml-8",children:e.jsx("div",{className:"py-2 px-8 text-gray-600 hover:text-indigo-700 hover:bg-indigo-100 rounded-full ",children:e.jsx("p",{children:"Pending"})})})]}),e.jsx("button",{className:"focus:ring-2 focus:ring-offset-2 focus:ring-indigo-600 mt-4 sm:mt-0 inline-flex items-start justify-start px-6 py-3 bg-indigo-700 hover:bg-indigo-600 focus:outline-hidden rounded-sm",children:e.jsx("p",{className:"text-sm font-medium leading-none text-white",children:"Add Task"})})]}),e.jsx("div",{className:"mt-7 overflow-x-auto",children:e.jsx("table",{className:"w-full whitespace-nowrap",children:e.jsx("tbody",{children:Array.from(d).map(([o,i])=>e.jsx(sr,{data:i,setEditSalaryRecord:n=>t(n?{month:o,employeeId:n}:void 0),setInsertSalaryRecord:()=>s({month:o})},o))})})})]})})},cr=()=>{const{setFiltersContext:t}=x.useContext(Te),[s,l]=x.useState(void 0),[d,o]=x.useState(void 0),{get:i}=Q(),[n,c]=x.useState(i("salariesFilters")?JSON.parse(decodeURIComponent(i("salariesFilters"))):{...L()}),[{data:y,fetching:j}]=I({query:Me,variables:{...n}});return x.useEffect(()=>{t(e.jsxs("div",{className:"flex flex-row gap-x-5",children:[e.jsx(Ye,{filter:n,setFilter:c}),e.jsx(_,{variant:"default",onClick:()=>o({})})]}))},[y,j,n,t,c]),e.jsxs(Be,{title:"Salaries",description:"View and manage salaries of employees.",children:[j?e.jsx(ke,{className:"h-10 w-10 animate-spin mr-2 self-center"}):e.jsx(ar,{setEditSalaryRecord:l,setInsertSalaryRecord:o,data:y?.salaryRecordsByDates}),e.jsx(qe,{recordVariables:s,onDone:()=>l(void 0)}),d&&e.jsx(Ve,{insertSalaryRecordParams:d,setInsertSalaryRecord:o})]})};export{cr as Salaries};
@@ -1 +0,0 @@
1
- import{u as y,dm as O,t as R,r as t,dn as q,G as b,bw as C,j as e,D as V,aU as z,B as M,at as H,x as P,aV as G,aW as $,al as L,am as Q,an as U,ao as Y,aq as W,w as v,dp as w,y as X,bx as J,bt as K,Q as Z,aY as _,by as ee,bz as se,bA as te,bB as B,bC as m,bD as ne,bE as x,bF as ae,bG as re,av as le,bH as ce,bI as oe,F as ie,c as ue}from"./index-Bd-SKdyy.js";import{u as de,E as he}from"./edit-issue-document-modal-2d_PTbvO.js";import{s as F}from"./subMonths-DHPWOZP6.js";const me=()=>{const[{data:c,fetching:o,error:l},f]=y({query:O});l&&(console.error(`Error fetching contracts: ${l}`),R.error("Error",{description:"Unable to fetch contracts"}));const a=t.useMemo(()=>c?.allOpenContracts?.slice().sort((r,u)=>r.client.originalBusiness.name>u.client.originalBusiness.name?1:-1)??[],[c]),h=t.useMemo(()=>a.map(r=>({value:r.id,label:r.client.originalBusiness.name})),[a]);return{fetching:o,refresh:()=>f(),openContracts:a,selectableOpenContracts:h}};function xe({issueMonth:c,contracts:o,onAdd:l}){const[f,a]=t.useState(!1),[h,r]=t.useState(""),[{data:u},i]=y({query:q,variables:{issueMonth:c,clientId:h}}),p=t.useCallback(d=>{r(d),i()},[i,r]);return t.useEffect(()=>{h!==""&&u&&(l(b(C,u.clientMonthlyChargeDraft)),a(!1))},[h,u,l]),e.jsxs(V,{open:f,onOpenChange:a,children:[e.jsx(z,{asChild:!0,children:e.jsx(M,{variant:"outline",size:"icon",children:e.jsx(H,{})})}),e.jsxs(P,{className:"w-[400px] max-w-screen-md",children:[e.jsx(G,{children:e.jsx($,{children:"Select document recipient"})}),e.jsxs(L,{onValueChange:p,children:[e.jsx(Q,{children:e.jsx(U,{placeholder:"Recipient"})}),e.jsx(Y,{children:o.map(d=>e.jsx(W,{value:d.client.originalBusiness.id,children:d.client.originalBusiness.name},d.client.originalBusiness.id))})]})]})]})}const fe=({drafts:c})=>{const[o,l]=t.useState(c.map(s=>b(C,s))),f=v(F(new Date,1),"yyyy-MM-dd"),[a,h]=t.useState(f),[{data:r},u]=y({query:w,variables:{issueMonth:a},pause:!0});t.useEffect(()=>{r?.clientMonthlyChargesDrafts&&l(r.clientMonthlyChargesDrafts.map(s=>b(C,s)))},[r,l]),t.useEffect(()=>{u()},[a,u]);const i=X({values:{generateDocumentsInfo:o}}),{issueDocuments:p}=de(),{openContracts:d}=me(),{fields:I,append:N,remove:E,update:A}=J({control:i.control,name:"generateDocumentsInfo"}),T=i.watch("generateDocumentsInfo"),g=t.useMemo(()=>I.map((s,n)=>({...s,...T[n],id:s.client?.id})),[I,T]),S=t.useCallback(s=>{p(s)},[p]),k=t.useMemo(()=>d.filter(s=>s.billingCycle===K.Monthly&&!g.some(n=>n.client?.id===s.client.originalBusiness.id)),[g,d]);return e.jsx("div",{className:"p-2",children:e.jsx(Z,{...i,children:e.jsxs("form",{onSubmit:i.handleSubmit(S),children:[e.jsxs("div",{className:"flex gap-2 items-center mb-4",children:[e.jsx(_,{children:"Issue Month:"}),e.jsx(ee,{value:new Date(a),onChange:s=>{const n=new Date(s.getFullYear(),s.getMonth(),15);h(v(n,"yyyy-MM-dd"))},popoverProps:{withinPortal:!0}})]}),e.jsxs(se,{children:[e.jsx(te,{children:e.jsxs(B,{children:[e.jsx(m,{children:"Name"}),e.jsx(m,{children:"Document"}),e.jsx(m,{children:"Amount"}),e.jsx(m,{children:"Remark"}),e.jsx(m,{children:"Recipients"}),e.jsx(m,{})]})}),e.jsx(ne,{children:g.map(({id:s,...n},D)=>e.jsxs(B,{children:[e.jsx(x,{children:n.client?.name}),e.jsx(x,{children:n.type}),e.jsxs(x,{children:[n.income?.[0]?.price," ",n.income?.[0]?.currency]}),e.jsx(x,{children:e.jsx("span",{className:"text-sm text-gray-500 whitespace-normal max-w-50",children:n.remarks})}),e.jsx(x,{children:e.jsx("div",{className:"flex flex-col",children:n.client?.emails?.map(j=>e.jsx("span",{className:"text-sm text-gray-500",children:j},j))})}),e.jsx(x,{children:e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs(ae,{children:[e.jsx(re,{asChild:!0,type:"button",children:e.jsx(M,{className:"size-7.5",variant:"secondary",onClick:()=>E(D),children:e.jsx(le,{size:16})})}),e.jsx(ce,{children:e.jsx("p",{children:"Remove document"})})]}),e.jsx(he,{draft:n,onApprove:j=>{i.setValue(`generateDocumentsInfo.${D}`,j,{shouldDirty:!0,shouldTouch:!0,shouldValidate:!0}),A(D,{...j})}})]})})]},s))})]}),e.jsxs("div",{className:"flex justify-between items-center mt-4",children:[e.jsx(xe,{contracts:k,onAdd:N,issueMonth:a}),e.jsx(oe,{onConfirm:i.handleSubmit(S),title:`Are you sure you want to issue ${g.length} documents?`,children:e.jsx(M,{children:"Issue"})})]})]})})})},ye=()=>{const{setFiltersContext:c}=t.useContext(ie),[{data:o,fetching:l}]=y({query:w,variables:{issueMonth:v(F(new Date,1),"yyyy-MM-dd")}});return t.useEffect(()=>{o?.clientMonthlyChargesDrafts||c(null)},[o,c]),l?e.jsx(ue,{}):e.jsx(fe,{drafts:o?.clientMonthlyChargesDrafts??[]})};export{ye as IssueDocuments};
@@ -1 +0,0 @@
1
- import{j as e,bB as D,bE as a,w as f,cZ as n,G as N,g3 as v,r as d,bl as E,D as T,aU as A,B as w,x as I,be as O,y as B,dg as M,Q as P,W as y,X as C,Y as F,Z as L,ar as U,$ as g,ak as V,aZ as k,F as q,a7 as Q,u as _,c as $,bz as z,bA as G,bC as o,bD as Z,g4 as H}from"./index-Bd-SKdyy.js";import{u as S}from"./use-url-query-5TFyEk1x.js";import{P as J}from"./page-layout-XgNPsCmr.js";import{F as W}from"./funnel-DW3_rS_8.js";const X=({record:s})=>{const t=N(v,s);return e.jsxs(D,{children:[e.jsx(a,{children:s.description}),e.jsx(a,{children:f(new Date(s.purchaseDate),"dd/MM/yyyy")}),e.jsx(a,{children:s.activationDate?f(new Date(s.activationDate),"dd/MM/yyyy"):void 0}),e.jsx(a,{children:t.originalCost?n(t.originalCost,0):void 0}),e.jsx(a,{children:t.reportYearDelta?n(t.reportYearDelta,0):void 0}),e.jsx(a,{children:n(t.totalDepreciableCosts,0)}),e.jsxs(a,{children:[n(s.statutoryDepreciationRate,0),"%"]}),e.jsx(a,{children:s.claimedDepreciationRate?`${n(s.claimedDepreciationRate,1)}%`:"-"}),e.jsx(a,{children:t.reportYearClaimedDepreciation?n(t.reportYearClaimedDepreciation,0):"-"}),e.jsx(a,{children:t.pastYearsAccumulatedDepreciation?n(t.pastYearsAccumulatedDepreciation,0):"-"}),e.jsx(a,{children:t.totalDepreciation?n(t.totalDepreciation,0):"-"}),e.jsx(a,{children:t.netValue?n(t.netValue,0):"-"})]})};function K(s){return!s||O(s)?null:encodeURIComponent(JSON.stringify(s))}const b="depreciationReportFilters";function ee({filter:s,setFilter:t,close:r}){const m=B({defaultValues:{...s}}),{control:c,handleSubmit:x}=m,{selectableFinancialEntities:u,fetching:l}=M(),j=i=>{t({...i,year:Number(i.year)}),r()};return e.jsx(P,{...m,children:e.jsxs("form",{onSubmit:x(j),className:"space-y-4",children:[e.jsx(y,{name:"year",control:c,rules:{required:"Year is required",validate:i=>{const p=Number(i);return Number.isNaN(p)||p<2e3||p>2100?"Invalid year":!0}},render:({field:i})=>e.jsxs(C,{children:[e.jsx(F,{children:"Year"}),e.jsx(L,{children:e.jsx(U,{...i,hideControls:!0,decimalScale:0})}),e.jsx(g,{})]})}),e.jsx(y,{name:"financialEntityId",defaultValue:s?.financialEntityId,control:c,render:({field:i})=>e.jsxs(C,{children:[e.jsx(F,{children:"Owner"}),e.jsx(V,{...i,data:u,value:i.value??void 0,disabled:l,placeholder:"Select a financial entity",formPart:!0}),e.jsx(g,{})]})}),e.jsx(k,{children:e.jsx(w,{type:"submit",disabled:l,children:"Filter"})})]})})}function ae({filter:s,setFilter:t}){const[r,m]=d.useState(!1),{get:c,set:x}=S();d.useEffect(()=>{const l=K(s),j=c(b);l!==j&&x(b,l)},[s,c,x]);const u=d.useCallback(l=>{E(l,s)||t(l)},[s,t]);return e.jsxs(T,{open:r,onOpenChange:m,children:[e.jsx(A,{asChild:!0,children:e.jsx(w,{variant:"outline",size:"icon",children:e.jsx(W,{size:20})})}),e.jsx(I,{className:"sm:max-w-[425px]",children:e.jsx(ee,{filter:s,setFilter:u,close:()=>m(!1)})})]})}const R=({data:s,groupName:t})=>{const r=N(v,s);return e.jsxs(D,{className:"font-bold border-b border-black",children:[e.jsx(a,{children:t?"Group Total":"Overall Total"}),e.jsx(a,{colSpan:2,children:t}),e.jsx(a,{children:r.originalCost?n(r.originalCost,0):void 0}),e.jsx(a,{children:r.reportYearDelta?n(r.reportYearDelta,0):void 0}),e.jsx(a,{children:r.totalDepreciableCosts?n(r.totalDepreciableCosts,0):void 0}),e.jsx(a,{}),e.jsx(a,{}),e.jsx(a,{children:r.reportYearClaimedDepreciation?n(r.reportYearClaimedDepreciation,0):void 0}),e.jsx(a,{children:r.pastYearsAccumulatedDepreciation?n(r.pastYearsAccumulatedDepreciation,0):void 0}),e.jsx(a,{children:r.totalDepreciation?n(r.totalDepreciation,0):void 0}),e.jsx(a,{children:r.netValue?n(r.netValue,0):void 0})]})},ne=()=>{const{setFiltersContext:s}=d.useContext(q),{userContext:t}=d.useContext(Q),{get:r}=S(),m=d.useMemo(()=>{const i={financialEntityId:t?.context.adminBusinessId,year:new Date().getFullYear()},p=r(b);if(p)try{return JSON.parse(decodeURIComponent(p))}catch(h){console.error("Failed to parse depreciation report filters from URL",h)}return i},[t?.context.adminBusinessId]),[c,x]=d.useState(m),[{data:u,fetching:l}]=_({query:H,variables:{filters:c}});d.useEffect(()=>{s(e.jsx("div",{className:"flex flex-row gap-x-5",children:e.jsx(ae,{filter:c,setFilter:x})}))},[c,s,x]);const j=d.useMemo(()=>`Depreciation Report for ${c.year}`,[c.year]);return e.jsx(J,{title:"Depreciation Report",description:j,children:l?e.jsx($,{}):e.jsxs(z,{children:[e.jsxs(G,{children:[e.jsxs(D,{className:"font-bold text-xl",children:[e.jsx(o,{colSpan:6,className:"text-center border-x",children:"List of Assets and Costs"}),e.jsx(o,{colSpan:5,className:"text-center border-x",children:"Depreciation"}),e.jsx(o,{className:"text-center border-x",children:"Remaining"})]}),e.jsxs(D,{className:"border-b border-black",children:[e.jsx(o,{className:"whitespace-normal",children:"Assets List and Descriptions"}),e.jsx(o,{className:"whitespace-normal",children:"Date of Purchase"}),e.jsx(o,{className:"whitespace-normal",children:"Activation Date"}),e.jsx(o,{className:"whitespace-normal",children:"Original Cost"}),e.jsx(o,{className:"whitespace-normal",children:"Changes During the Year"}),e.jsx(o,{className:"whitespace-normal",children:"Total Depreciable Assets"}),e.jsx(o,{className:"whitespace-normal",children:"Statutory Depreciation Rate"}),e.jsx(o,{className:"whitespace-normal",children:"Claimed Depreciation Rate"}),e.jsx(o,{className:"whitespace-normal",children:"Depreciation Claimed This Year"}),e.jsx(o,{className:"whitespace-normal",children:"Previous Tax Years Accumulated Depreciation"}),e.jsx(o,{className:"whitespace-normal",children:"Total Depreciation"}),e.jsx(o,{className:"whitespace-normal",children:"Net Book Value"})]})]}),e.jsx(Z,{children:u?.depreciationReport&&e.jsxs(e.Fragment,{children:[u.depreciationReport.categories.map((i,p)=>e.jsxs(d.Fragment,{children:[e.jsxs(D,{className:"font-bold",children:[e.jsx(a,{children:`Category ${p+1}`}),e.jsx(a,{colSpan:2,children:i.category.name}),e.jsx(a,{colSpan:3}),e.jsxs(a,{children:[n(i.category.percentage,0),"%"]}),e.jsx(a,{colSpan:5})]}),i.records.sort((h,Y)=>h.purchaseDate.localeCompare(Y.purchaseDate)).map(h=>e.jsx(X,{record:h},h.id)),e.jsx(R,{data:i.summary,groupName:i.category.name})]},i.id)),e.jsx(R,{data:u.depreciationReport.summary})]})})]})})};export{ne as DepreciationReport};
@@ -1 +0,0 @@
1
- import{j as e,W as C,X as p,Y as S,Z as y,ar as w,$ as b,I as L,g as k,hN as H,r as u,t as m,i as E,D as M,aU as R,B as x,bX as Q,x as A,aV as T,aW as $,u as P,hO as z,L as O,y as q,Q as K,a4 as V,hP as _,F as W,bJ as X,bz as J,bA as Y,bB as I,bC as Z,bM as v,bD as G,bE as g,hQ as ee,bP as se,bO as te,bQ as re}from"./index-Bd-SKdyy.js";import{D as oe}from"./data-table-pagination-BenxjRXY.js";import{P as ne}from"./page-layout-XgNPsCmr.js";import{A as D}from"./arrow-up-down-D0e6luFS.js";function U({isInsert:s,formManager:n}){const{control:r}=n;return e.jsxs(e.Fragment,{children:[e.jsx(C,{name:"key",control:r,disabled:!s,rules:{required:"Required",validate:{positive:t=>Number(t)>0||"Key must be a positive number",integer:t=>Number.isInteger(Number(t))||"Key must be an integer"}},render:({field:t})=>e.jsxs(p,{children:[e.jsx(S,{children:"Key"}),e.jsx(y,{children:e.jsx(w,{...t,value:t.value??void 0,hideControls:!0,decimalScale:0,thousandSeparator:"",required:!0})}),e.jsx(b,{})]})}),e.jsx(C,{name:"name",control:r,rules:{required:"Required",minLength:{value:2,message:"Must be at least 2 characters"}},render:({field:t})=>e.jsxs(p,{children:[e.jsx(S,{children:"Name"}),e.jsx(y,{children:e.jsx(L,{...t,value:t.value??void 0,required:!0})}),e.jsx(b,{})]})}),e.jsx(C,{name:"defaultIrsCode",control:r,render:({field:t})=>e.jsxs(p,{children:[e.jsx(S,{children:"Default IRS Code"}),e.jsx(y,{children:e.jsx(w,{...t,value:t.value??void 0,hideControls:!0,decimalScale:0})}),e.jsx(b,{})]})})]})}const ae="updateSortCode",de=()=>{const[{fetching:s},n]=k(H),r=u.useCallback(async t=>{const d=`Error updating sort code ID [${t.key}]`,o=`${ae}-${t.key}`;m.loading("Updating Sort Code...",{id:o});try{const a=await n(t),i=E(a,d,o,"updateSortCode");if(i)return m.success("Success",{id:o,description:"SortCode updated"}),i.updateSortCode}catch(a){console.error(`${d}: ${a}`),m.error("Error",{id:o,description:d,duration:1e5,closeButton:!0})}return!1},[n]);return{fetching:s,updateSortCode:r}};function ie({sortCodeKey:s,onAdd:n}){const[r,t]=u.useState(!1);return e.jsxs(M,{open:r,onOpenChange:t,children:[e.jsx(R,{asChild:!0,children:e.jsx(x,{variant:"outline",size:"icon",children:e.jsx(Q,{})})}),e.jsxs(A,{className:"w-[400px] max-w-screen-md",children:[e.jsx(T,{children:e.jsx($,{children:"Edit Sort Code"})}),e.jsx(le,{sortCodeKey:s,close:()=>t(!1),onAdd:n})]})]})}function le({sortCodeKey:s,close:n,onAdd:r}){const[{data:t,fetching:d}]=P({query:z,variables:{key:s}}),o=t?.sortCode;return!o&&!d&&m.error("Error",{description:"Couldn't find sort code"}),d?e.jsx(O,{className:"h-10 w-10 animate-spin"}):o?e.jsx(ce,{sortCode:o,close:n,onAdd:r}):e.jsx("div",{children:"Sort code not found"})}function ce({sortCode:s,close:n,onAdd:r}){const t=q({defaultValues:s}),{handleSubmit:d,formState:{dirtyFields:o}}=t,{updateSortCode:a,fetching:i}=de(),l=({key:c,...B})=>{const h=V(B,o);if(h&&Object.keys(h).length>0){let N;if(h.defaultIrsCode){const f=h.defaultIrsCode,j=Number(f);if(!Number.isInteger(j)||j<2||j>9999)throw new Error(`Invalid IRS code: ${f}`);N=j}a({fields:{...h,defaultIrsCode:N},key:s.key}).then(f=>{f&&(r?.(s.key),n())})}};return e.jsx(K,{...t,children:e.jsxs("form",{onSubmit:d(l),children:[e.jsx("div",{className:"flex flex-col gap-4 my-4",children:e.jsx(U,{isInsert:!1,formManager:t})}),e.jsx("div",{className:"flex justify-end mt-4",children:e.jsx(x,{type:"submit",disabled:i,children:"Update"})})]})})}const ue="addSortCode",me=()=>{const[{fetching:s},n]=k(_),r=u.useCallback(async t=>{const d=`Error adding new sort code [${t.name}]`,o=`${ue}-${t.name}`;m.loading("Adding sort code",{id:o});try{const a=await n(t);E(a,d,o)&&m.success("Success",{id:o,description:`"${t.name}" sort code was successfully added`})}catch(a){console.error(`${d}: ${a}`),m.error("Error",{id:o,description:d,duration:1e5,closeButton:!0})}},[n]);return{fetching:s,addSortCode:r}};function xe({onAdd:s}){const[n,r]=u.useState(!1);return e.jsxs(M,{open:n,onOpenChange:r,children:[e.jsx(R,{asChild:!0,children:e.jsx(x,{children:"Add Sort Code"})}),e.jsxs(A,{className:"w-[90vw] max-w-screen-md",children:[e.jsx(T,{children:e.jsx($,{children:"Add New Sort Code"})}),e.jsx(he,{close:()=>r(!1),onAdd:s})]})]})}function he({close:s,onAdd:n}){const r=q({}),{handleSubmit:t}=r,{addSortCode:d,fetching:o}=me(),a=i=>{i.key&&=parseInt(i.key.toString()),i.defaultIrsCode&&=parseInt(i.defaultIrsCode.toString()),d(i).then(()=>{s(),n?.()})};return e.jsx(K,{...r,children:e.jsxs("form",{onSubmit:t(a),children:[e.jsx("div",{className:"flex flex-col gap-4 my-4",children:e.jsx(U,{isInsert:!0,formManager:r})}),e.jsx("div",{className:"flex justify-end mt-4",children:e.jsx(x,{type:"submit",disabled:o,children:"Add Sort Code"})})]})})}const F=[{id:"key",accessorKey:"key",cell:({row:s})=>e.jsx(g,{children:s.original.key}),header:({column:s})=>e.jsxs(x,{variant:"ghost",onClick:()=>s.toggleSorting(s.getIsSorted()==="asc"),children:["Key",e.jsx(D,{})]})},{id:"name",accessorKey:"name",cell:({row:s})=>e.jsx(g,{children:s.original.name}),header:({column:s})=>e.jsxs(x,{variant:"ghost",onClick:()=>s.toggleSorting(s.getIsSorted()==="asc"),children:["Name",e.jsx(D,{})]})},{id:"defaultIrsCode",accessorKey:"defaultIrsCode",cell:({row:s})=>e.jsx(g,{className:"flex flex-wrap gap-1 p-1",children:s.original.defaultIrsCode&&e.jsx(x,{variant:"outline",disabled:!0,className:"p-1 w-15",children:s.original.defaultIrsCode})}),header:"Default IRS Code"},{id:"edit",cell:({row:s})=>e.jsx(ie,{sortCodeKey:s.original.key,onAdd:s.original.refetchSortCodes})}],pe=()=>{const[{data:s,fetching:n,error:r},t]=P({query:ee}),{setFiltersContext:d}=u.useContext(W),o=u.useMemo(()=>s?.allSortCodes?.map(l=>({...l,refetchSortCodes:t}))??[],[s?.allSortCodes,t]),a=X({data:o,columns:F,getCoreRowModel:re(),getPaginationRowModel:te(),getSortedRowModel:se(),initialState:{pagination:{pageSize:100}}}),i=a.getPageOptions();return u.useEffect(()=>{d(e.jsx("div",{className:"flex items-center justify-end gap-10 space-x-2 py-4",children:e.jsx(oe,{table:a})}))},[d,a,i]),u.useEffect(()=>{r&&(console.error("Error fetching sort codes",r),m.error("Error",{description:"Error fetching sort codes"}))},[r]),e.jsx(ne,{title:`Sort Codes (${o.length})`,description:"All sort codes",headerActions:e.jsx(xe,{onAdd:()=>t()}),children:n?e.jsx("div",{className:"flex flex-row justify-center",children:e.jsx(O,{className:"h-10 w-10 animate-spin mr-2"})}):e.jsx("div",{className:"flex flex-col gap-4 rounded-md border",children:e.jsxs(J,{children:[e.jsx(Y,{children:a.getHeaderGroups().map(l=>e.jsx(I,{children:l.headers.map(c=>e.jsx(Z,{children:c.isPlaceholder?null:v(c.column.columnDef.header,c.getContext())},c.id))},l.id))}),e.jsx(G,{children:a.getRowModel().rows.length===0?e.jsx(I,{children:e.jsx(g,{colSpan:F.length,className:"text-center py-8",children:"No sort codes found"})}):a.getRowModel().rows.map(l=>e.jsx(I,{children:l.getVisibleCells().map(c=>e.jsx(g,{children:v(c.column.columnDef.cell,c.getContext())},c.id))},l.id))})]})})})};export{pe as SortCodes};
@@ -1 +0,0 @@
1
- import{g as T,hC as N,r as u,t as l,i as f,y,G as b,j as e,Q as C,ee as $,W as D,X as F,Y as w,Z as k,I as j,$ as E,hD as v,hE as A,a4 as S,l as z,T as L,B as p,bX as M,n as O,hF as P,hG as B,F as q,u as U,hH as _,L as G,cf as Q,hI as R}from"./index-Bd-SKdyy.js";import{P as V}from"./page-layout-XgNPsCmr.js";import{L as X}from"./list-plus-B7wBrICK.js";const H="updateTag",W=()=>{const[{fetching:c},r]=T(N),i=u.useCallback(async t=>{const a=`Error updating tag ID [${t.tagId}]`,s=`${H}-${t.tagId}`;l.loading("Updating Tag...",{id:s});try{const n=await r(t),d=f(n,a,s,"updateTag");if(d)return l.success("Success",{id:s,description:"Tag updated"}),d.updateTag}catch(n){console.error(`${a}: ${n}`),l.error("Error",{id:s,description:a,duration:1e5,closeButton:!0})}return!1},[r]);return{fetching:c,updateTag:i}},Y=({onDone:c,data:r,close:i})=>{const{updateTag:t,fetching:a}=W(),s=b(A,r),n=y({defaultValues:{name:s.name,parentId:s.parent?.id}}),{control:d,handleSubmit:m,formState:{dirtyFields:h}}=n,x=o=>{const g=S(o,h);i(),g&&Object.keys(g).length>0&&t({tagId:s.id,fields:g}).then(()=>c?.())};return e.jsx(C,{...n,children:e.jsxs("form",{onSubmit:m(x),children:[e.jsx("div",{className:"flex-row px-10 h-max justify-start block",children:e.jsxs($,{cols:3,children:[e.jsx(D,{name:"name",control:d,defaultValue:s.name,rules:{required:"Required",minLength:{value:2,message:"Must be at least 2 characters"}},render:({field:o})=>e.jsxs(F,{children:[e.jsx(w,{children:"Name"}),e.jsx(k,{children:e.jsx(j,{...o,value:o.value??void 0})}),e.jsx(E,{})]})}),e.jsx(v,{formManager:n,tagsPath:"parentId",label:"Parent Tag"})]})}),e.jsxs("div",{className:"mt-10 mb-5 flex justify-center gap-5",children:[e.jsx("button",{type:"submit",onClick:()=>m(x),className:"mt-8 text-white bg-indigo-500 border-0 py-2 px-8 focus:outline-hidden hover:bg-indigo-600 rounded-sm text-lg",disabled:a||Object.keys(h).length===0,children:"Accept"}),e.jsx("button",{type:"button",className:"mt-8 text-white bg-rose-500 border-0 py-2 px-8 focus:outline-hidden hover:bg-rose-600 rounded-sm text-lg",onClick:i,children:"Cancel"})]})]})})},Z=({onDone:c,data:r})=>{const[i,{open:t,close:a}]=z(!1);function s(){a(),c?.()}return e.jsxs(e.Fragment,{children:[e.jsx(L,{label:"Edit Tag",children:e.jsx(p,{variant:"ghost",size:"icon",className:"size-7.5",onClick:t,children:e.jsx(M,{className:"size-5"})})}),e.jsx(O,{centered:!0,opened:i,onClose:a,title:"Insert Business Trip",children:e.jsx(Y,{close:a,onDone:s,data:r})})]})},J="addTag",K=()=>{const[{fetching:c},r]=T(P),i=u.useCallback(async t=>{const a=`Error adding new tag [${t.tagName}]`,s=`${J}-${t.tagName}`;l.loading("Adding tag",{id:s});try{const n=await r(t);f(n,a,s)&&l.success("Success",{id:s,description:`"${t.tagName}" tag was successfully added`})}catch(n){console.error(`${a}: ${n}`),l.error("Error",{id:s,description:a,duration:1e5,closeButton:!0})}},[r]);return{fetching:c,addTag:i}},ee="deleteTag",se=()=>{const[{fetching:c},r]=T(B),i=u.useCallback(async t=>{const a=`Error deleting new tag [${t.name}]`,s=`${ee}-${t.tagId}`;l.loading(`Deleting tag [${t.name}]`,{id:s});try{const n=await r(t);f(n,a,s)&&l.success("Tag Deleted",{id:s,description:`[${t.name}] tag was successfully removed`})}catch(n){console.error(`${a}: ${n}`),l.error("Error",{id:s,description:a,duration:1e5,closeButton:!0})}},[r]);return{fetching:c,deleteTag:i}},oe=()=>{const{setFiltersContext:c}=u.useContext(q),[r,i]=u.useState(""),[{data:t,fetching:a},s]=U({query:R}),{addTag:n}=K(),{deleteTag:d}=se();u.useEffect(()=>{c(null)},[c]);const m=_(t?.allTags??[]),h=u.useCallback(o=>{o.length>2&&n({tagName:o}).then(()=>{s()})},[n,s]),x=u.useCallback((o,g)=>{d({tagId:o,name:g}).then(()=>{s()})},[d,s]);return e.jsx(V,{title:"Tags",description:"Manage tags for your bookmarks.",children:a?e.jsx(G,{className:"h-10 w-10 animate-spin mr-2 self-center"}):e.jsxs("div",{className:"h-full flex flex-col overflow-hidden",children:[m?.map(o=>e.jsxs("div",{className:"flex items-center gap-2 text-gray-600 mb-2",children:[e.jsxs("div",{className:"w-full mt-1 relative rounded-md shadow-xs",children:[o.namePath?.map((g,I)=>e.jsx("span",{className:"ms-2"},I)),o.name]}),e.jsx(Z,{data:o}),e.jsx(p,{variant:"ghost",size:"icon",className:"size-7.5",onClick:()=>x(o.id,o.name),children:e.jsx(Q,{className:"size-5"})})]},o.id)),e.jsxs("div",{className:"flex justify-start items-center gap-2 text-gray-600 mb-2",children:[e.jsx(j,{className:"w-80",value:r,onChange:o=>i(o.currentTarget.value),placeholder:"Add new tag",required:!0}),e.jsx(p,{variant:"ghost",size:"icon",className:"size-7.5",disabled:r.length<2,onClick:()=>h(r),children:e.jsx(X,{className:"size-5"})})]})]})})};export{oe as TagsManager};
@@ -1 +0,0 @@
1
- import{j as e,dl as t}from"./index-Bd-SKdyy.js";import{P as o}from"./page-layout-XgNPsCmr.js";const n=()=>e.jsx(o,{title:"New Document",description:"Issue a document for a client",children:e.jsx(t,{})});export{n as IssueDocumentScreen};
@@ -1 +0,0 @@
1
- import{r as n,hR as g,o as f,y as p,z as b,j as e,Q as v,W as o,X as l,Y as c,Z as i,I as d,$ as m,B as w,a3 as N,R as y,t as x,a5 as u}from"./index-Bd-SKdyy.js";const S=N({username:u().min(2).max(50),password:u().min(2).max(50)});function E(){const{authService:a}=n.useContext(g);n.useEffect(()=>{a.logout()},[a]);const h=f(),s=p({resolver:b(S),defaultValues:{username:"",password:""}});function j(r){try{a.login(r.username,r.password).then(t=>{h(y.HOME)}),x.success("Success",{description:"You have successfully logged in."})}catch(t){console.error(t),x.error("Error",{description:"Invalid credentials. Please try again."})}}return e.jsxs("div",{className:"w-full flex flex-col justify-center items-center h-screen lg:grid lg:min-h-[200px] lg:grid-cols-2 xl:min-h-screen",children:[e.jsx("div",{className:"flex items-center justify-center",children:e.jsx(v,{...s,children:e.jsxs("form",{onSubmit:s.handleSubmit(j),className:"space-y-8 w-[300px]",children:[e.jsxs("div",{className:"grid gap-2 text-center",children:[e.jsx("h1",{className:"text-3xl font-bold",children:"Accounter"}),e.jsx("h1",{className:"text-3xl font-bold",children:"Login"}),e.jsx("p",{className:"text-balance text-muted-foreground",children:"Enter your credentials to login."})]}),e.jsx(o,{control:s.control,name:"username",render:({field:r})=>e.jsxs(l,{children:[e.jsx(c,{children:"Username"}),e.jsx(i,{children:e.jsx(d,{placeholder:"Username",...r})}),e.jsx(m,{})]})}),e.jsx(o,{control:s.control,name:"password",render:({field:r})=>e.jsxs(l,{children:[e.jsx(c,{children:"Password"}),e.jsx(i,{children:e.jsx(d,{placeholder:"Password",type:"password",...r})}),e.jsx(m,{})]})}),e.jsx(w,{disabled:s.formState.isSubmitting||!s.formState.isValid,className:"w-full font-semibold",type:"submit",children:"Login"})]})})}),e.jsx("div",{className:"hidden bg-muted lg:block bg-black rounded-tl-3xl rounded-bl-3xl",children:e.jsx("div",{className:"flex flex-row justify-center items-center h-screen",children:e.jsx("img",{src:"../../icons/guild-logo.svg",alt:"nature",className:"w-[100px] h-[100px] object-cover"})})})]})}export{E as LoginPage};
@@ -1 +0,0 @@
1
- import{bt as w,bu as P,g as _,bT as ee,r as j,t as f,i as X,bU as te,u as ne,bV as ae,y as se,bW as S,bs as H,bb as E,z as re,a3 as ie,w as v,j as e,D as oe,aU as ce,B as D,bX as le,at as z,x as de,aV as ue,aW as me,aX as pe,Q as he,W as o,X as c,Y as l,Z as d,I as C,$ as p,au as xe,av as je,al as k,am as T,an as N,ao as O,aq as A,ag as ye,aL as ge,az as Ce,aZ as fe,bY as De,bZ as b,a5 as R,b_ as be,aF as we,a6 as ve,aE as ke,b$ as U,c0 as Te,aH as Ne}from"./index-Bd-SKdyy.js";function Oe(u){switch(u){case w.Annual:return"Annual";case w.Monthly:return"Monthly";default:throw new Error(`Unsupported Billing Cycle: ${u}`)}}function Ae(u){switch(u){case P.Enterprise:return"Enterprise";case P.Pro:return"Pro";default:throw new Error(`Unsupported Subscription plan: ${u}`)}}const Pe="createContract",Le=()=>{const[{fetching:u},s]=_(ee),x=j.useCallback(async h=>{const m=`Error creating new contract for client[${h.input.clientId}]`,r=`${Pe}-${h.input.clientId}`;f.loading("Creating contract",{id:r});try{const i=await s(h);X(i,m,r)&&f.success("Success",{id:r,description:`Contract for client ${h.input.clientId} was successfully created`})}catch(i){console.error(`${m}: ${i}`),f.error("Error",{id:r,description:m,duration:1e5,closeButton:!0})}},[s]);return{creating:u,createContract:x}},Se="updateContract",Ee=()=>{const[{fetching:u},s]=_(te),x=j.useCallback(async h=>{const m=`Error updating contract ID [${h.contractId}]`,r=`${Se}-${h.contractId}`;f.loading("Updating contract",{id:r});try{const i=await s(h),y=X(i,m,r,"updateContract");if(y)return f.success("Success",{id:r,description:"Contract updated"}),y.updateContract}catch(i){console.error(`${m}: ${i}`),f.error("Error",{id:r,description:m,duration:1e5,closeButton:!0})}},[s]);return{updating:u,updateContract:x}},Ie=ie({id:Te().optional(),startDate:U("Start date is required"),endDate:U("End date is required"),pos:ke(R()),paymentAmount:ve().min(0,"Payment amount must be non-negative"),paymentCurrency:b(Object.values(E),"Currency is required"),productType:b(Object.values(H)).optional(),msCloudLink:we().optional().or(Ne("")),billingCycle:b(Object.values(w)).optional(),subscriptionPlan:b(Object.values(P)).optional(),isActive:be(),defaultRemark:R().optional(),defaultDocumentType:b(Object.values(S)),operationsLimit:De().min(0,"Operations limit must be non-negative")}),q={startDate:"",endDate:"",pos:[],paymentAmount:0,paymentCurrency:E.Usd,productType:H.Hive,msCloudLink:void 0,billingCycle:w.Monthly,subscriptionPlan:void 0,isActive:!0,defaultRemark:void 0,defaultDocumentType:S.Proforma,operationsLimit:0};function Me({clientId:u,contract:s,contractId:x,onDone:h}){const[m,r]=j.useState(!1),[i,y]=j.useState(null),[I,F]=j.useState(""),{updateContract:M,updating:W}=Ee(),{createContract:V,creating:Z}=Le(),[{data:L,fetching:Q},$]=ne({query:ae,pause:!x||!m,variables:{contractId:x??""}});j.useEffect(()=>{m&&x&&$()},[m,x,$]);const a=se({resolver:re(Ie),defaultValues:s||q}),B=()=>{const t=I.trim();if(t){const n=a.getValues("pos");n.includes(t)||a.setValue("pos",[...n,t],{shouldDirty:!0}),F("")}},Y=t=>{const n=a.getValues("pos");a.setValue("pos",n.filter((g,J)=>J!==t),{shouldDirty:!0})};j.useEffect(()=>{s&&(y(s),a.reset({startDate:s.startDate,endDate:s.endDate,pos:s.pos,paymentAmount:s.paymentAmount,paymentCurrency:s.paymentCurrency,productType:s.productType,msCloudLink:s.msCloudLink,billingCycle:s.billingCycle,subscriptionPlan:s.subscriptionPlan,isActive:s.isActive,defaultRemark:s.defaultRemark,defaultDocumentType:s.defaultDocumentType,operationsLimit:s.operationsLimit}),r(!0))},[s,a]),j.useEffect(()=>{if(L?.contractsById){const t=L.contractsById,n={startDate:t.startDate,endDate:t.endDate,pos:t.purchaseOrders,paymentAmount:t.amount.raw,paymentCurrency:t.amount.currency,productType:t.product??void 0,msCloudLink:t.msCloud?.toString()??void 0,billingCycle:t.billingCycle,subscriptionPlan:t.plan??void 0,isActive:t.isActive,defaultRemark:t.remarks??void 0,defaultDocumentType:t.documentType,operationsLimit:t.operationsLimit};y({id:t.id,...n}),a.reset(n)}},[L,a]);const K=()=>{y(null),a.reset(q),r(!0)},G=j.useCallback(async t=>{if(i)await M({contractId:i.id,input:{amount:{raw:t.paymentAmount,currency:t.paymentCurrency},billingCycle:t.billingCycle,documentType:t.defaultDocumentType,endDate:v(new Date(t.endDate),"yyyy-MM-dd"),isActive:t.isActive,msCloud:t.msCloudLink,plan:t.subscriptionPlan,product:t.productType,purchaseOrders:t.pos,remarks:t.defaultRemark,startDate:v(new Date(t.startDate),"yyyy-MM-dd"),operationsLimit:t.operationsLimit}});else{if(!t.billingCycle){a.setError("billingCycle",{message:"Billing cycle is required"});return}await V({input:{clientId:u,amount:{raw:t.paymentAmount,currency:t.paymentCurrency},billingCycle:t.billingCycle,documentType:t.defaultDocumentType,endDate:v(new Date(t.endDate),"yyyy-MM-dd"),isActive:t.isActive,msCloud:t.msCloudLink,plan:t.subscriptionPlan,product:t.productType,purchaseOrders:t.pos,remarks:t.defaultRemark,startDate:v(new Date(t.startDate),"yyyy-MM-dd"),operationsLimit:t.operationsLimit}})}r(!1),y(null),h?.()},[i,h,V,M,u,a]);return e.jsxs(oe,{open:m,onOpenChange:r,children:[e.jsx(ce,{asChild:!0,children:e.jsx(D,{size:"sm",onClick:K,children:x?e.jsx(le,{className:"size-4"}):e.jsxs(e.Fragment,{children:[e.jsx(z,{className:"size-4 mr-2"}),"New Contract"]})})}),e.jsxs(de,{className:"max-w-2xl max-h-[90vh] overflow-y-auto",children:[e.jsxs(ue,{children:[e.jsx(me,{children:i?"Edit Contract":"Create New Contract"}),e.jsx(pe,{children:i?"Update contract details":"Add a new contract with all required details"})]}),Q?e.jsx(e.Fragment,{children:"Fetching contract details..."}):e.jsx(he,{...a,children:e.jsxs("form",{onSubmit:a.handleSubmit(G),children:[e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsx(o,{control:a.control,name:"operationsLimit",render:({field:t})=>e.jsxs(c,{children:[e.jsx(l,{children:"Operations Limit"}),e.jsx(d,{children:e.jsx(C,{type:"number",placeholder:"500",...t})}),e.jsx(p,{})]})}),e.jsx(o,{control:a.control,name:"pos",render:({field:t})=>e.jsxs(c,{children:[e.jsx(l,{children:"Purchase Orders"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(C,{placeholder:"Add PO...",value:I,onChange:n=>F(n.target.value),onKeyDown:n=>{n.key==="Enter"&&(n.preventDefault(),B())}}),e.jsx(D,{type:"button",size:"sm",onClick:B,children:e.jsx(z,{className:"h-4 w-4"})})]}),e.jsx("div",{className:"flex flex-wrap gap-2 mt-2",children:t.value?.map((n,g)=>e.jsxs(xe,{variant:"secondary",className:"gap-1 max-w-xs truncate",children:[n,g===t.value.length-1&&e.jsx(D,{variant:"ghost",size:"icon",className:"p-0 size-3",onClick:()=>Y(g),children:e.jsx(je,{className:"size-3 cursor-pointer flex-shrink-0"})})]},n))}),e.jsx(p,{})]})})]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsx(o,{control:a.control,name:"startDate",render:({field:{onChange:t,...n}})=>e.jsxs(c,{children:[e.jsx(l,{children:"Start Date"}),e.jsx(d,{children:e.jsx(C,{type:"date",...n,onInput:g=>t(g)})}),e.jsx(p,{})]})}),e.jsx(o,{control:a.control,name:"endDate",render:({field:{onChange:t,...n}})=>e.jsxs(c,{children:[e.jsx(l,{children:"End Date"}),e.jsx(d,{children:e.jsx(C,{type:"date",...n,onInput:g=>t(g)})}),e.jsx(p,{})]})})]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-3",children:[e.jsx(o,{control:a.control,name:"paymentAmount",render:({field:t})=>e.jsxs(c,{className:"md:col-span-2",children:[e.jsx(l,{children:"Payment Amount"}),e.jsx(d,{children:e.jsx(C,{type:"number",placeholder:"24000",...t,onChange:n=>{t.onChange(n?.target.value?Number(n?.target.value):void 0)}})}),e.jsx(p,{})]})}),e.jsx(o,{control:a.control,name:"paymentCurrency",render:({field:t})=>e.jsxs(c,{children:[e.jsx(l,{children:"Currency"}),e.jsxs(k,{onValueChange:t.onChange,defaultValue:t.value,children:[e.jsx(d,{children:e.jsx(T,{children:e.jsx(N,{})})}),e.jsx(O,{children:Object.values(E).map(n=>e.jsx(A,{value:n,children:n},n))})]}),e.jsx(p,{})]})})]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsx(o,{control:a.control,name:"productType",render:({field:t})=>e.jsxs(c,{children:[e.jsx(l,{children:"Product Type"}),e.jsx(d,{children:e.jsx(C,{placeholder:"Cloud Services",...t})}),e.jsx(p,{})]})}),e.jsx(o,{control:a.control,name:"billingCycle",render:({field:t})=>e.jsxs(c,{children:[e.jsx(l,{children:"Billing Cycle"}),e.jsxs(k,{onValueChange:t.onChange,defaultValue:t.value,children:[e.jsx(d,{children:e.jsx(T,{children:e.jsx(N,{})})}),e.jsx(O,{children:Object.values(w).map(n=>e.jsx(A,{value:n,children:Oe(n)},n))})]}),e.jsx(p,{})]})})]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsx(o,{control:a.control,name:"subscriptionPlan",render:({field:t})=>e.jsxs(c,{children:[e.jsx(l,{children:"Subscription Plan"}),e.jsx(d,{children:e.jsxs(k,{onValueChange:t.onChange,defaultValue:t.value,children:[e.jsx(d,{children:e.jsx(T,{children:e.jsx(N,{})})}),e.jsx(O,{children:Object.values(P).map(n=>e.jsx(A,{value:n,children:Ae(n)},n))})]})}),e.jsx(p,{})]})}),e.jsx(o,{control:a.control,name:"isActive",render:({field:t})=>e.jsxs(c,{className:"flex flex-row items-center justify-between rounded-lg border p-4",children:[e.jsx("div",{className:"space-y-0.5",children:e.jsx(l,{className:"text-base",children:"Active Status"})}),e.jsx(d,{children:e.jsx(ye,{checked:t.value,onCheckedChange:t.onChange})})]})})]}),e.jsx(o,{control:a.control,name:"msCloudLink",render:({field:t})=>e.jsxs(c,{children:[e.jsx(l,{children:"MS Cloud Link"}),e.jsx(d,{children:e.jsx(C,{type:"url",placeholder:"https://portal.azure.com/contract-id",...t})}),e.jsx(p,{})]})}),e.jsx(o,{control:a.control,name:"defaultDocumentType",render:({field:t})=>e.jsxs(c,{children:[e.jsx(l,{children:"Default Document Type"}),e.jsxs(k,{onValueChange:t.onChange,defaultValue:t.value,children:[e.jsx(d,{children:e.jsx(T,{children:e.jsx(N,{})})}),e.jsx(O,{children:Object.values(S).map(n=>e.jsx(A,{value:n,children:ge(n)},n))})]}),e.jsx(p,{})]})}),e.jsx(o,{control:a.control,name:"defaultRemark",render:({field:t})=>e.jsxs(c,{children:[e.jsx(l,{children:"Default Remark"}),e.jsx(d,{children:e.jsx(Ce,{placeholder:"Enter default remark for this contract...",rows:3,...t})}),e.jsx(p,{})]})})]}),e.jsxs(fe,{children:[e.jsx(D,{type:"button",variant:"outline",onClick:()=>r(!1),children:"Cancel"}),e.jsx(D,{type:"submit",disabled:Z||W,children:i?"Update Contract":"Create Contract"})]})]})})]})]})}export{Me as M,Ae as a,Oe as s};
@@ -1 +0,0 @@
1
- import{gE as n}from"./index-Bd-SKdyy.js";function a(o,s,t){return n(o,-s,t)}export{a as s};
@@ -1 +0,0 @@
1
- import{j as o,gY as t,bF as e,bG as l,bH as n}from"./index-Bd-SKdyy.js";function a({children:i,content:r,...s}){return o.jsx(t,{children:o.jsxs(e,{children:[o.jsx(l,{asChild:!0,children:i}),o.jsx(n,{...s,children:r})]})})}export{a as T};