UNPKG

@accounter/client

Version:
1 lines • 13.5 kB
import{s as e}from"./dist-ypP48_Ax.js";import{i as t,o as n}from"./utils-CbS-oR5I.js";import{r}from"./error-handling-CKe_iwSC.js";import{i,n as a}from"./routes-D0AKaVmS.js";import{Jt as o,Q as s,St as c,Xt as l,Z as u,gt as d,ir as f,n as p,nn as m,ot as h,p as g,yt as _}from"./common-3blB_OGJ.js";import{o as v,s as y}from"./select-Bp1lD5cE.js";import{t as b}from"./funnel-BrJTCiKR.js";import{t as x}from"./button-DUNsVBiu.js";import{$c as S,Fl as C,Gc as w,Hc as T,Kc as E,Ml as D,Nl as O,Ul as k,Vc as A,Wc as j,Xc as M,jl as N,qc as P}from"./table-B6QCIQQv.js";import{Zt as F,ln as I,ls as L,sn as R,v as z}from"./graphql-lcoKwSC9.js";import{t as B}from"./sub-QWlHO21t.js";import{t as V}from"./MultiSelect-BIfGhTOl.js";import{t as H}from"./use-url-query-v8OHvuc2.js";import{t as U}from"./use-get-financial-accounts-D3uX4O7O.js";var W=e(N(),1),G=e(n(),1),K=()=>{let[{data:e,fetching:t,error:n},i]=L({query:z});n&&(console.error(`Error fetching business trips: ${n}`),r.error(`Error`,{description:`Unable to fetch business trips`}));let a=(0,G.useMemo)(()=>[...e?.allBusinessTrips??[]].sort((e,t)=>e.name>t.name?1:-1),[e]);return{fetching:t,refresh:()=>i(),businessTrips:a,selectableBusinessTrips:(0,G.useMemo)(()=>a.map(e=>({value:e.id,label:e.name})),[a])}},q=t(),ee=[{value:R.AbsAmount,label:`Abs Amount`},{value:R.Amount,label:`Amount`},{value:R.Date,label:`Date`}],J=[{label:`All`,value:F.All},{label:`Income`,value:F.Income},{label:`Expense`,value:F.Expense}],te=[{label:`Bank Deposit`,value:I.BankDeposit},{label:`Business Trip`,value:I.BusinessTrip},{label:`Common`,value:I.Common},{label:`Conversion`,value:I.Conversion},{label:`Credit Card Bank`,value:I.CreditcardBank},{label:`Dividend`,value:I.Dividend},{label:`Financial`,value:I.Financial},{label:`Foreign Securities`,value:I.ForeignSecurities},{label:`Internal Transfer`,value:I.Internal},{label:`Monthly VAT`,value:I.Vat},{label:`Salary`,value:I.Payroll}];function Y({filter:e,setFilter:t,closeModal:n,withDefaultDateRange:r=!0}){let{userContext:i}=(0,G.useContext)(S),a=M({defaultValues:{byOwners:i?.context.adminBusinessId?[i.context.adminBusinessId]:void 0,sortBy:{field:R.Date,asc:!1},...r?{toAnyDate:k(new Date,`yyyy-MM-dd`),fromAnyDate:k(B(new Date,{years:1}),`yyyy-MM-dd`)}:{},...e}}),{control:p,handleSubmit:m,watch:g}=a,[b,x]=(0,G.useState)(e.sortBy?.asc??!1),[N,I]=(0,G.useState)(!!e.sortBy?.field),{selectableFinancialEntities:L,fetching:z}=d(),{selectableTags:H,fetching:W}=c(),{selectableBusinessTrips:Y,fetching:X}=K(),{selectableFinancialAccounts:ne,fetching:Q}=U(),$=g(`sortBy.field`);(0,G.useEffect)(()=>{$&&!N?I(!0):!$&&N&&I(!1)},[$,N]);let re=e=>{b!=null&&e.sortBy?.field&&(e.sortBy.asc=b),t(e),n()};function ie(){t({}),x(!1),n()}return(0,q.jsxs)(q.Fragment,{children:[z?(0,q.jsx)(`div`,{children:`Loading...`}):(0,q.jsx)(`div`,{}),(0,q.jsx)(A,{...a,children:(0,q.jsxs)(`form`,{onSubmit:m(re),children:[(0,q.jsxs)(o,{cols:2,children:[(0,q.jsx)(j,{name:`byOwners`,control:p,defaultValue:e.byOwners,render:({field:e})=>(0,q.jsxs)(w,{className:`h-min`,children:[(0,q.jsx)(E,{children:`Owners`}),(0,q.jsx)(T,{children:(0,q.jsx)(V,{...e,data:L,value:e.value??[],disabled:z,placeholder:`Scroll to see all options`,maxDropdownHeight:160,searchable:!0,withinPortal:!0})}),(0,q.jsx)(P,{})]})}),(0,q.jsx)(j,{name:`byBusinesses`,control:p,defaultValue:e.byBusinesses,render:({field:e})=>(0,q.jsxs)(w,{className:`h-min`,children:[(0,q.jsx)(E,{children:`Financial Entities`}),(0,q.jsx)(T,{children:(0,q.jsx)(V,{...e,data:L,value:e.value??[],disabled:z,placeholder:`Scroll to see all options`,maxDropdownHeight:160,searchable:!0,withinPortal:!0})}),(0,q.jsx)(P,{})]})}),(0,q.jsx)(j,{name:`byFinancialAccounts`,control:p,defaultValue:e.byFinancialAccounts,render:({field:e})=>(0,q.jsxs)(w,{className:`h-min`,children:[(0,q.jsx)(E,{children:`Financial Accounts`}),(0,q.jsx)(T,{children:(0,q.jsx)(V,{...e,data:ne,value:e.value??[],disabled:Q,placeholder:`Scroll to see all options`,maxDropdownHeight:160,searchable:!0,withinPortal:!0})}),(0,q.jsx)(P,{})]})}),(0,q.jsx)(j,{name:`byTags`,control:p,defaultValue:e.byTags,render:({field:e})=>(0,q.jsxs)(w,{className:`h-min`,children:[(0,q.jsx)(E,{children:`Tags`}),(0,q.jsx)(T,{children:(0,q.jsx)(V,{...e,data:H,itemComponent:s,value:e.value??[],disabled:W,placeholder:`Scroll to see all options`,maxDropdownHeight:160,searchable:!0,withinPortal:!0,filter:(e,t,n)=>n.label?.toLowerCase().includes(e.toLowerCase().trim())||n.description?.toLowerCase().includes(e.toLowerCase().trim())})}),(0,q.jsx)(P,{})]})}),(0,q.jsx)(j,{name:`fromAnyDate`,control:p,defaultValue:e.fromAnyDate,rules:{pattern:{value:f,message:`Date must be in format yyyy-mm-dd`}},render:({field:e,fieldState:t})=>(0,q.jsxs)(w,{className:`h-min`,children:[(0,q.jsx)(E,{htmlFor:`from-any-date`,children:`From Date`}),(0,q.jsx)(T,{children:(0,q.jsx)(h,{id:`from-any-date`,value:e.value??void 0,onChange:t=>{t!==e.value&&e.onChange(t)},"aria-invalid":!!t.error})}),(0,q.jsx)(P,{})]})}),(0,q.jsx)(j,{name:`toAnyDate`,control:p,defaultValue:e.toAnyDate,rules:{pattern:{value:f,message:`Date must be in format yyyy-mm-dd`}},render:({field:e,fieldState:t})=>(0,q.jsxs)(w,{className:`h-min`,children:[(0,q.jsx)(E,{htmlFor:`to-any-date`,children:`To Date`}),(0,q.jsx)(T,{children:(0,q.jsx)(h,{id:`to-any-date`,value:e.value??void 0,onChange:t=>{t!==e.value&&e.onChange(t)},"aria-invalid":!!t.error})}),(0,q.jsx)(P,{})]})}),(0,q.jsx)(j,{name:`chargesType`,control:p,defaultValue:e.chargesType,render:({field:e})=>(0,q.jsxs)(w,{className:`h-min`,children:[(0,q.jsx)(E,{children:`Income / Expense`}),(0,q.jsx)(T,{children:(0,q.jsx)(l,{...e,data:J,value:e.value??F.All,disabled:z,placeholder:`Filter income/expense`,maxDropdownHeight:160,withinPortal:!0})}),(0,q.jsx)(P,{})]})}),(0,q.jsx)(j,{name:`byChargeTypes`,control:p,defaultValue:e.byChargeTypes,render:({field:e})=>(0,q.jsxs)(w,{className:`h-min`,children:[(0,q.jsx)(E,{children:`Charge Type`}),(0,q.jsx)(T,{children:(0,q.jsx)(V,{...e,data:te,value:e.value??[],placeholder:`All charge types`,maxDropdownHeight:160,searchable:!0,withinPortal:!0})}),(0,q.jsx)(P,{})]})}),(0,q.jsx)(j,{name:`byBusinessTrips`,control:p,defaultValue:e.byBusinessTrips,render:({field:e})=>(0,q.jsxs)(w,{className:`h-min`,children:[(0,q.jsx)(E,{children:`Business Trips`}),(0,q.jsx)(T,{children:(0,q.jsx)(V,{...e,data:Y,value:e.value??[],disabled:X,placeholder:`Scroll to see all options`,maxDropdownHeight:160,searchable:!0,withinPortal:!0})}),(0,q.jsx)(P,{})]})}),(0,q.jsx)(j,{name:`sortBy.field`,control:p,defaultValue:e.sortBy?.field??R.Date,render:({field:t})=>(0,q.jsxs)(w,{className:`h-min`,children:[(0,q.jsx)(E,{children:`Field to sort by`}),(0,q.jsx)(T,{children:(0,q.jsx)(l,{...t,data:ee,placeholder:`Scroll to see all options`,maxDropdownHeight:160,searchable:!0,rightSectionProps:{style:{width:`5rem`}},withinPortal:!0,rightSection:(0,q.jsxs)(`div`,{className:`flex flex-row items-center gap-1`,children:[(0,q.jsx)(_,{defaultChecked:e.sortBy?.asc??!1,checked:b??!1,disabled:!N,onCheckedChange:x}),(0,q.jsx)(`span`,{className:`text-xs`,children:b?`ASC`:`DESC`})]})})}),(0,q.jsx)(P,{})]})}),(0,q.jsx)(j,{name:`accountantStatus`,control:p,defaultValue:e.accountantStatus,render:({field:e})=>(0,q.jsxs)(w,{className:`h-min`,children:[(0,q.jsx)(E,{children:`Accountant Status`}),(0,q.jsx)(T,{children:(0,q.jsx)(V,{...e,value:e.value??[],itemComponent:Z,data:Object.values(u),disabled:z,placeholder:`All`,maxDropdownHeight:160,withinPortal:!0})}),(0,q.jsx)(P,{})]})}),(0,q.jsx)(j,{name:`freeText`,control:p,rules:{minLength:{value:2,message:`Must be at least 2 characters`}},render:({field:e})=>(0,q.jsxs)(w,{className:`h-min`,children:[(0,q.jsx)(E,{children:`Free Text`}),(0,q.jsx)(T,{children:(0,q.jsx)(y,{...e,value:e.value??``})}),(0,q.jsx)(P,{})]})}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-2 mt-4 rounded-lg border p-3 shadow-sm space-y-2`,children:[(0,q.jsx)(v,{children:`Missing Information:`}),(0,q.jsx)(j,{control:a.control,name:`withoutInvoice`,render:({field:t})=>(0,q.jsxs)(w,{className:`flex flex-row items-center justify-between`,children:[(0,q.jsx)(`div`,{className:`space-y-0.5`,children:(0,q.jsx)(E,{children:`Without Invoice`})}),(0,q.jsx)(T,{children:(0,q.jsx)(_,{defaultChecked:e.withoutInvoice??!1,onCheckedChange:t.onChange})})]})}),(0,q.jsx)(j,{control:a.control,name:`withoutReceipt`,render:({field:t})=>(0,q.jsxs)(w,{className:`flex flex-row items-center justify-between`,children:[(0,q.jsx)(`div`,{className:`space-y-0.5`,children:(0,q.jsx)(E,{children:`Without Receipts`})}),(0,q.jsx)(T,{children:(0,q.jsx)(_,{defaultChecked:e.withoutReceipt??!1,onCheckedChange:t.onChange})})]})}),(0,q.jsx)(j,{control:a.control,name:`withoutDocuments`,render:({field:t})=>(0,q.jsxs)(w,{className:`flex flex-row items-center justify-between`,children:[(0,q.jsx)(`div`,{className:`space-y-0.5`,children:(0,q.jsx)(E,{children:`Without Documents`})}),(0,q.jsx)(T,{children:(0,q.jsx)(_,{defaultChecked:e.withoutDocuments??!1,onCheckedChange:t.onChange})})]})}),(0,q.jsx)(j,{control:a.control,name:`withOpenDocuments`,render:({field:t})=>(0,q.jsxs)(w,{className:`flex flex-row items-center justify-between`,children:[(0,q.jsx)(`div`,{className:`space-y-0.5`,children:(0,q.jsx)(E,{children:`With Open Documents`})}),(0,q.jsx)(T,{children:(0,q.jsxs)(D,{children:[(0,q.jsx)(C,{children:(0,q.jsx)(_,{defaultChecked:e.withOpenDocuments??!1,onCheckedChange:t.onChange})}),(0,q.jsx)(O,{children:(0,q.jsx)(`p`,{children:`Show only charges with documents that are currently open`})})]})})]})}),(0,q.jsx)(j,{control:a.control,name:`withoutTransactions`,render:({field:t})=>(0,q.jsxs)(w,{className:`flex flex-row items-center justify-between`,children:[(0,q.jsx)(`div`,{className:`space-y-0.5`,children:(0,q.jsx)(E,{children:`Without Transactions`})}),(0,q.jsx)(T,{children:(0,q.jsx)(_,{defaultChecked:e.withoutTransactions??!1,onCheckedChange:t.onChange})})]})}),(0,q.jsx)(j,{control:a.control,name:`withMissingCounterparty`,render:({field:t})=>(0,q.jsxs)(w,{className:`flex flex-row items-center justify-between`,children:[(0,q.jsx)(`div`,{className:`space-y-0.5`,children:(0,q.jsx)(E,{children:`Missing Counterparty`})}),(0,q.jsx)(T,{children:(0,q.jsxs)(D,{children:[(0,q.jsx)(C,{children:(0,q.jsx)(_,{defaultChecked:e.withMissingCounterparty??!1,onCheckedChange:t.onChange})}),(0,q.jsx)(O,{children:(0,q.jsx)(`p`,{children:`Show charges with a transaction missing a business, or a document missing a creditor / debtor`})})]})})]})}),(0,q.jsx)(j,{control:a.control,name:`withoutTags`,render:({field:e})=>(0,q.jsxs)(w,{className:`flex flex-row items-center justify-between`,children:[(0,q.jsx)(`div`,{className:`space-y-0.5`,children:(0,q.jsx)(E,{children:`Without Tags`})}),(0,q.jsx)(T,{children:(0,q.jsxs)(D,{children:[(0,q.jsx)(C,{children:(0,q.jsx)(_,{checked:e.value??!1,onCheckedChange:e.onChange})}),(0,q.jsx)(O,{children:(0,q.jsx)(`p`,{children:`Show only charges that have no tags`})})]})})]})}),(0,q.jsx)(j,{control:a.control,name:`unbalanced`,render:({field:t})=>(0,q.jsxs)(w,{className:`flex flex-row items-center justify-between`,children:[(0,q.jsx)(`div`,{className:`space-y-0.5`,children:(0,q.jsx)(E,{children:`Unbalanced businesses`})}),(0,q.jsx)(T,{children:(0,q.jsx)(_,{defaultChecked:e.unbalanced??!1,onCheckedChange:t.onChange})})]})}),(0,q.jsx)(j,{control:a.control,name:`withoutLedger`,render:({field:t})=>(0,q.jsxs)(w,{className:`flex flex-row items-center justify-between`,children:[(0,q.jsx)(`div`,{className:`space-y-0.5`,children:(0,q.jsx)(E,{children:`Without ledger`})}),(0,q.jsx)(T,{children:(0,q.jsx)(_,{defaultChecked:e.withoutLedger??!1,onCheckedChange:t.onChange})})]})})]})]}),(0,q.jsxs)(`div`,{className:`flex justify-center mt-5 gap-3`,children:[(0,q.jsx)(`button`,{type:`submit`,disabled:z||W||Q,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`}),(0,q.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:ie,children:`Clear`}),(0,q.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:n,children:`Cancel`})]})]})})]})}function X({filter:e={},setFilter:t,activePage:n,setPage:r,totalPages:o=1,initiallyOpened:s=!1,withDefaultDateRange:c=!0}){let[l,u]=(0,G.useState)(s),[d,f]=(0,G.useState)(!i(e)),{get:h,set:_}=H();(0,G.useEffect)(()=>{let e=n>0?n.toFixed(0):null;e!==h(`page`)&&_(`page`,e)},[n,h,_]),(0,G.useEffect)(()=>{let t=a(e);t!==h(`chargesFilters`)&&(_(`chargesFilters`,t),_(`page`),r(0))},[e,h,_,r]);let v=(0,G.useCallback)(n=>{(0,W.default)(n,e)||(t(n),f(!i(n)))},[e,t]);return(0,q.jsxs)(`div`,{className:`flex flex-row gap-5 items-center`,children:[(0,q.jsx)(g,{opened:l,onClose:()=>u(!1),content:(0,q.jsx)(Y,{filter:e,setFilter:v,closeModal:()=>u(!1),withDefaultDateRange:c}),modalSize:`xl`}),o>1&&(0,q.jsx)(p,{className:`flex-fit w-fit mx-0`,currentPageIndex:n,onChange:r,totalPages:o}),(0,q.jsx)(m,{inline:!0,size:16,disabled:!d,children:(0,q.jsx)(x,{variant:`outline`,size:`icon`,className:`size-7.5`,onClick:()=>u(!0),children:(0,q.jsx)(b,{className:`size-5`})})})]})}var Z=(0,G.forwardRef)(({bgColor:e,label:t,color:n,icon:r,...i},a)=>(0,q.jsxs)(x,{ref:a,...i,variant:`ghost`,size:`sm`,className:`h-7 p-0 ${e}`,title:t,children:[(0,q.jsx)(r,{className:`h-3.5 w-3.5 ${n}`}),t]}));Z.displayName=`AccountantStatusMultiSelectItem`;export{J as n,X as t};