@accounter/client
Version:
2 lines (1 loc) • 8.94 kB
JavaScript
import{r as i,bB as I,bI as z,j as e,P as U,bC as G,B as V,aC as _,E as $,w as N,aE as D,dr as q,b4 as J,W as Q,ds as X,bE as x,hE as Z,bF as O,bG as P,bH as L,en as E,at as p,a3 as K,Z as j,_ as g,$ as b,a0 as y,bU as Y,bV as ee,bW as se}from"./index-DRqooPz9.js";import{u as ae}from"./use-url-query-A8PE3FMA.js";import{a as te}from"./update-accountant-status-Btcm95Uc.js";import{P as ne}from"./modal-CPrQ9jQu.js";import{F as oe}from"./funnel-B1ZA9LM9.js";import{s as re}from"./sub-764RJPt0.js";import{M as A}from"./MultiSelect-DhEZHYxn.js";function le(a){return!a||I(a)?null:encodeURIComponent(JSON.stringify(a))}const ce=[{value:D.AbsAmount,label:"Abs Amount"},{value:D.Amount,label:"Amount"},{value:D.Date,label:"Date"}],ie=[{label:"All",value:E.All},{label:"Income",value:E.Income},{label:"Expense",value:E.Expense}];function de({filter:a,setFilter:u,closeModal:c}){const{userContext:h}=i.useContext(_),o=$({defaultValues:{byOwners:h?.context.adminBusinessId?[h.context.adminBusinessId]:void 0,sortBy:{field:D.Date,asc:!1},toAnyDate:N(new Date,"yyyy-MM-dd"),fromAnyDate:N(re(new Date,{years:1}),"yyyy-MM-dd"),...a}}),{control:r,handleSubmit:k,watch:C}=o,[f,S]=i.useState(a.sortBy?.asc??!1),[d,m]=i.useState(!!a.sortBy?.field),{selectableFinancialEntities:F,fetching:t}=q(),{selectableTags:v,fetching:B}=J(),T=C("sortBy.field");i.useEffect(()=>{T&&!d?m(!0):!T&&d&&m(!1)},[T,d]);const H=s=>{f!=null&&s.sortBy?.field&&(s.sortBy.asc=f),u(s),c()};function R(){u({}),S(!1),c()}return e.jsxs(e.Fragment,{children:[t?e.jsx("div",{children:"Loading..."}):e.jsx("div",{}),e.jsx(Q,{...o,children:e.jsxs("form",{onSubmit:k(H),children:[e.jsxs(X,{cols:2,children:[e.jsx(x,{name:"byOwners",control:r,defaultValue:a.byOwners,render:({field:s,fieldState:n})=>e.jsx(A,{...s,data:F,value:s.value??[],disabled:t,label:"Owners",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:n.error?.message,withinPortal:!0})}),e.jsx(x,{name:"byBusinesses",control:r,defaultValue:a.byBusinesses,render:({field:s,fieldState:n})=>e.jsx(A,{...s,data:F,value:s.value??[],disabled:t,label:"Financial Entities",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:n.error?.message,withinPortal:!0})}),e.jsx(x,{name:"byTags",control:r,defaultValue:a.byTags,render:({field:s,fieldState:n})=>e.jsx(A,{...s,data:v,itemComponent:Z,value:s.value??[],disabled:B,label:"Tags",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:n.error?.message,withinPortal:!0,filter:(l,w,M)=>M.label?.toLowerCase().includes(l.toLowerCase().trim())||M.description?.toLowerCase().includes(l.toLowerCase().trim())})}),e.jsx(x,{name:"fromAnyDate",control:r,defaultValue:a.fromAnyDate,rules:{pattern:{value:O,message:"Date must be im format yyyy-mm-dd"}},render:({field:s,fieldState:n})=>e.jsx(P,{...s,onChange:l=>{const w=l?typeof l=="string"?l:N(l,"yyyy-MM-dd"):void 0;w!==s.value&&s.onChange(w)},value:s.value?new Date(s.value):void 0,error:n.error?.message,label:"From Date",popoverProps:{withinPortal:!0}})}),e.jsx(x,{name:"toAnyDate",control:r,defaultValue:a.toAnyDate,rules:{pattern:{value:O,message:"Date must be im format yyyy-mm-dd"}},render:({field:s,fieldState:n})=>e.jsx(P,{...s,onChange:l=>{const w=l?typeof l=="string"?l:N(l,"yyyy-MM-dd"):void 0;w!==s.value&&s.onChange(w)},value:s.value?new Date(s.value):void 0,error:n.error?.message,label:"To Date",popoverProps:{withinPortal:!0}})}),e.jsx(x,{name:"chargesType",control:r,defaultValue:a.chargesType,render:({field:s,fieldState:n})=>e.jsx(L,{...s,data:ie,value:s.value??E.All,disabled:t,label:"Charge Type",placeholder:"Filter income/expense",maxDropdownHeight:160,error:n.error?.message,withinPortal:!0})}),e.jsx(x,{name:"sortBy.field",control:r,defaultValue:a.sortBy?.field??D.Date,render:({field:s,fieldState:n})=>e.jsx(L,{...s,data:ce,label:"Field to sort by",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:n.error?.message,rightSectionProps:{style:{width:"5rem"}},withinPortal:!0,rightSection:e.jsxs("div",{className:"flex flex-row items-center gap-1",children:[e.jsx(p,{defaultChecked:a.sortBy?.asc??!1,checked:f??!1,disabled:!d,onCheckedChange:S}),e.jsx("span",{className:"text-xs",children:f?"ASC":"DESC"})]})})}),e.jsx(x,{name:"accountantStatus",control:r,defaultValue:a.accountantStatus,render:({field:s,fieldState:n})=>e.jsx(A,{...s,value:s.value??[],itemComponent:W,data:Object.values(te),disabled:t,label:"Accountant Status",placeholder:"All",maxDropdownHeight:160,error:n.error?.message,withinPortal:!0})}),e.jsxs("div",{className:"flex flex-col gap-2 mt-4 rounded-lg border p-3 shadow-sm space-y-2",children:[e.jsx(K,{children:"Missing Information:"}),e.jsx(j,{control:o.control,name:"withoutInvoice",render:({field:s})=>e.jsxs(g,{className:"flex flex-row items-center justify-between",children:[e.jsx("div",{className:"space-y-0.5",children:e.jsx(b,{children:"Without Invoice"})}),e.jsx(y,{children:e.jsx(p,{defaultChecked:a.withoutInvoice??!1,onCheckedChange:s.onChange})})]})}),e.jsx(j,{control:o.control,name:"withoutReceipt",render:({field:s})=>e.jsxs(g,{className:"flex flex-row items-center justify-between",children:[e.jsx("div",{className:"space-y-0.5",children:e.jsx(b,{children:"Without Receipts"})}),e.jsx(y,{children:e.jsx(p,{defaultChecked:a.withoutReceipt??!1,onCheckedChange:s.onChange})})]})}),e.jsx(j,{control:o.control,name:"withoutDocuments",render:({field:s})=>e.jsxs(g,{className:"flex flex-row items-center justify-between",children:[e.jsx("div",{className:"space-y-0.5",children:e.jsx(b,{children:"Without Documents"})}),e.jsx(y,{children:e.jsx(p,{defaultChecked:a.withoutDocuments??!1,onCheckedChange:s.onChange})})]})}),e.jsx(j,{control:o.control,name:"withOpenDocuments",render:({field:s})=>e.jsxs(g,{className:"flex flex-row items-center justify-between",children:[e.jsx("div",{className:"space-y-0.5",children:e.jsx(b,{children:"With Open Documents"})}),e.jsx(y,{children:e.jsxs(Y,{children:[e.jsx(ee,{children:e.jsx(p,{defaultChecked:a.withOpenDocuments??!1,onCheckedChange:s.onChange})}),e.jsx(se,{children:e.jsx("p",{children:"Show only charges with documents that are currently open"})})]})})]})}),e.jsx(j,{control:o.control,name:"withoutTransactions",render:({field:s})=>e.jsxs(g,{className:"flex flex-row items-center justify-between",children:[e.jsx("div",{className:"space-y-0.5",children:e.jsx(b,{children:"Without Transactions"})}),e.jsx(y,{children:e.jsx(p,{defaultChecked:a.withoutTransactions??!1,onCheckedChange:s.onChange})})]})}),e.jsx(j,{control:o.control,name:"unbalanced",render:({field:s})=>e.jsxs(g,{className:"flex flex-row items-center justify-between",children:[e.jsx("div",{className:"space-y-0.5",children:e.jsx(b,{children:"Unbalanced businesses"})}),e.jsx(y,{children:e.jsx(p,{defaultChecked:a.unbalanced??!1,onCheckedChange:s.onChange})})]})}),e.jsx(j,{control:o.control,name:"withoutLedger",render:({field:s})=>e.jsxs(g,{className:"flex flex-row items-center justify-between",children:[e.jsx("div",{className:"space-y-0.5",children:e.jsx(b,{children:"Without ledger"})}),e.jsx(y,{children:e.jsx(p,{defaultChecked:a.withoutLedger??!1,onCheckedChange:s.onChange})})]})})]})]}),e.jsxs("div",{className:"flex justify-center mt-5 gap-3",children:[e.jsx("button",{type:"submit",disabled:t||B,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:R,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:c,children:"Cancel"})]})]})})]})}function be({filter:a={},setFilter:u,activePage:c,setPage:h,totalPages:o=1,initiallyOpened:r=!1}){const[k,C]=i.useState(r),[f,S]=i.useState(!I(a)),{get:d,set:m}=ae();i.useEffect(()=>{const t=c>0?c.toFixed(0):null,v=d("page");t!==v&&m("page",t)},[c,d,m]),i.useEffect(()=>{const t=le(a),v=d("chargesFilters");t!==v&&(m("chargesFilters",t),m("page"),h(0))},[a,d,m,h]);const F=i.useCallback(t=>{z(t,a)||(u(t),S(!I(t)))},[a,u]);return e.jsxs("div",{className:"flex flex-row gap-5 items-center",children:[e.jsx(ne,{opened:k,onClose:()=>C(!1),content:e.jsx(de,{filter:a,setFilter:F,closeModal:()=>C(!1)}),modalSize:"xl"}),o>1&&e.jsx(U,{className:"flex-fit w-fit mx-0",currentPageIndex:c,onChange:h,totalPages:o}),e.jsx(G,{inline:!0,size:16,disabled:!f,children:e.jsx(V,{variant:"outline",size:"icon",className:"size-7.5",onClick:()=>C(!0),children:e.jsx(oe,{className:"size-5"})})})]})}const W=i.forwardRef(({bgColor:a,label:u,color:c,icon:h,...o},r)=>e.jsxs(V,{ref:r,...o,variant:"ghost",size:"sm",className:`h-7 p-0 ${a}`,title:u,children:[e.jsx(h,{className:`h-3.5 w-3.5 ${c}`}),u]}));W.displayName="AccountantStatusMultiSelectItem";export{be as C,ie as c};