UNPKG

@accounter/client

Version:
2 lines • 7.17 kB
import{$u as e,Al as t,B as n,G as r,H as i,K as a,Ml as o,Nd as s,Pl as c,Q as l,Rd as u,Tn as d,Tu as f,U as p,Un as m,V as h,W as g,Xn as _,Y as v,Yi as y,Ys as b,er as x,fs as S,ln as C,q as w}from"./index-DJOqGznr.js";import{t as T}from"./page-layout-YyDTnnkE.js";var E=u(s(),1),D=f(),O=({data:e,year:t})=>{let n=(0,E.useCallback)(async()=>e?{fileContent:A(_(b,e)),fileName:`${t}_ledger`}:{fileContent:``,fileName:``},[e,t]);return e?(0,D.jsx)(m,{createFileVariables:n}):(0,D.jsx)(`div`,{})},k=[{key:``,valueFn:()=>``},{key:``,valueFn:()=>``},{key:`Counterparty`,valueFn:e=>j(e.counterParty?.name??``)},{key:`Invoice Date`,valueFn:e=>c(e.invoiceDate,`yyyy-MM-dd`)},{key:`Value Date`,valueFn:e=>c(e.valueDate,`yyyy-MM-dd`)},{key:`Reference`,valueFn:e=>e.reference?`"${j(e.reference)}"`:``},{key:`Description`,valueFn:e=>e.description?`"${j(e.description)}"`:``},{key:`Debit Amount`,valueFn:e=>e.amount.raw<0?Math.abs(e.amount.raw).toFixed(2):``},{key:`Credit Amount`,valueFn:e=>e.amount.raw>=0?e.amount.raw.toFixed(2):``},{key:`Balance`,valueFn:e=>e.balance.toFixed(2)}],A=e=>{let t=[k.map(({key:e})=>e).join(`,`)];return e.financialEntitiesInfo.map(e=>{let n=`${j(e.entity.name)},${e.entity.sortCode?.key}`,r=`,Opening Balance,,,,,,,,${e.openingBalance.raw.toFixed(2)}`,i=`Total,${j(e.entity.name)},,,,,,,${Math.abs(e.totalDebit.raw).toFixed(2)} Debit,`,a=`,,,,,,,,${e.totalCredit.raw.toFixed(2)} Credit,${e.closingBalance.raw.toFixed(2)}`,o=`,,,,,,,,${(e.totalCredit.raw-e.totalDebit.raw).toFixed(2)} Diff,`;t.push(n,r,...e.records.map(e=>k.map(({valueFn:t})=>t(e)).join(`,`)),i,a,o)}),t.join(`\r `)};function j(e){return e.replace(/"/g,`""`).replace(/,/g,`.`)}var M=y(S.Ils),N=[{id:`placeholder`,header:``,cell:()=>null},{id:`counterparty`,accessorKey:`counterparty`,header:`Counterparty`,cell:({row:e})=>(0,D.jsx)(`div`,{className:`font-medium`,children:e.original.counterParty?.name})},{id:`invoiceDate`,accessorKey:`invoiceDate`,header:`Invoice Date`,cell:({row:e})=>(0,D.jsx)(`div`,{className:`font-medium`,children:c(new Date(e.getValue(`invoiceDate`)),`yyyy-MM-dd`)})},{id:`valueDate`,accessorKey:`valueDate`,header:`Value Date`,cell:({row:e})=>(0,D.jsx)(`div`,{className:`font-medium`,children:c(new Date(e.getValue(`valueDate`)),`yyyy-MM-dd`)})},{id:`reference`,accessorKey:`reference`,header:`Reference`},{id:`description`,accessorKey:`description`,header:`Description`},{id:`debit`,header:`Debit`,cell:({row:e})=>{let t=e.original.amount.raw;return t<0?(0,D.jsx)(`div`,{className:`font-medium`,children:M.format(t*-1)}):null}},{id:`credit`,header:`Credit`,cell:({row:e})=>{let t=e.original.amount.raw;return t>=0?(0,D.jsx)(`div`,{className:`font-medium`,children:M.format(t)}):null}},{id:`balance`,accessorKey:`balance`,header:`Balance`,cell:({row:e})=>(0,D.jsx)(`div`,{className:`font-medium`,children:M.format(e.getValue(`balance`))})}],P=()=>{let{setFiltersContext:s}=(0,E.useContext)(x),[c,u]=(0,E.useState)(new Date().getFullYear()-1),[{data:f,fetching:m}]=o({query:t,variables:{year:c}}),_=f?.yearlyLedgerReport,{financialEntitiesInfo:y}=_??{},b=w({data:(0,E.useMemo)(()=>y?.flatMap(e=>{let{entity:t,openingBalance:n,closingBalance:r,totalCredit:i,totalDebit:a}=e;return e.records.map(e=>({entity:t,openingBalance:n,closingBalance:r,totalCredit:i,totalDebit:a,...e}))})??[],[y]),columns:N,getCoreRowModel:v(),getPaginationRowModel:l(),initialState:{pagination:{pageSize:100}}}),S=b.getState().pagination.pageIndex;return(0,E.useEffect)(()=>{s((0,D.jsxs)(`div`,{className:`flex items-center justify-end gap-10 space-x-2 py-4`,children:[(0,D.jsx)(`div`,{className:`flex items-center justify-between px-2`,children:(0,D.jsx)(d,{table:b})}),(0,D.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,D.jsx)(C,{value:new Date(c,0,1),onChange:e=>e&&u(e?.getFullYear()),popoverProps:{withinPortal:!0},minDate:new Date(2010,0,1),maxDate:new Date}),(0,D.jsx)(O,{data:_,year:c})]})]}))},[c,m,s,_,b,S]),(0,D.jsx)(T,{title:`Yearly Ledger Report`,children:m?(0,D.jsx)(e,{className:`h-10 w-10 animate-spin mr-2 self-center`}):_?(0,D.jsx)(`div`,{className:`flex flex-col gap-4 rounded-md border`,children:(0,D.jsxs)(n,{children:[(0,D.jsx)(g,{children:b.getHeaderGroups().map(e=>(0,D.jsx)(r,{children:e.headers.map(e=>(0,D.jsx)(p,{children:e.isPlaceholder?null:a(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,D.jsx)(h,{children:b.getRowModel().rows.map((e,t)=>{let n=b.getRowModel().rows[t-1],o=b.getRowModel().rows[t+1],s=!n||n.original.entity.id!==e.original.entity.id,c=!o||o.original.entity.id!==e.original.entity.id;return(0,D.jsxs)(D.Fragment,{children:[s&&t!==0&&(0,D.jsx)(r,{className:`border-y-2 border-t-gray-300 border-b-gray-500`,children:(0,D.jsx)(i,{})}),s&&(0,D.jsx)(F,{row:e}),(0,D.jsx)(r,{children:e.getVisibleCells().map(e=>(0,D.jsx)(i,{children:a(e.column.columnDef.cell,e.getContext())},e.id))},e.id),c&&(0,D.jsx)(I,{row:e})]})})})]})}):(0,D.jsx)(`div`,{className:`rounded-md border h-24 text-center`,children:`No results.`})})};function F({row:e}){return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(r,{className:`bg-gray-300`,children:[(0,D.jsx)(i,{children:(0,D.jsx)(`div`,{className:`font-medium`,children:e.original.entity.name})}),(0,D.jsx)(i,{children:(0,D.jsx)(`div`,{className:`font-medium`,children:e.original.entity.sortCode?.key})}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{})]},`${e.id}-opening1`),(0,D.jsxs)(r,{className:`bg-gray-200`,children:[(0,D.jsx)(i,{}),(0,D.jsx)(i,{children:(0,D.jsx)(`div`,{className:`font-medium`,children:`Opening Balance`})}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{children:(0,D.jsx)(`div`,{className:`font-medium`,children:M.format(e.original.openingBalance.raw)})})]},`${e.id}-opening2`)]})}function I({row:e}){return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(r,{className:`bg-gray-200`,children:[(0,D.jsx)(i,{children:(0,D.jsx)(`div`,{className:`font-medium`,children:`Total`})}),(0,D.jsx)(i,{children:(0,D.jsx)(`div`,{className:`font-medium`,children:e.original.entity.name})}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{children:(0,D.jsxs)(`div`,{className:`font-medium`,children:[M.format(e.original.totalDebit.raw),` Debit`]})}),(0,D.jsx)(i,{})]},`${e.id}-totals1`),(0,D.jsxs)(r,{className:`bg-gray-200`,children:[(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{children:(0,D.jsxs)(`div`,{className:`font-medium`,children:[M.format(e.original.totalCredit.raw),` Credit`]})}),(0,D.jsx)(i,{children:(0,D.jsx)(`div`,{className:`font-medium`,children:M.format(e.original.closingBalance.raw)})})]},`${e.id}-totals2`),(0,D.jsxs)(r,{className:`bg-gray-200`,children:[(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{}),(0,D.jsx)(i,{children:(0,D.jsxs)(`div`,{className:`font-medium`,children:[M.format(e.original.totalCredit.raw-e.original.totalDebit.raw),` Diff`]})}),(0,D.jsx)(i,{})]},`${e.id}-totals3`)]})}export{P as YearlyLedgerReport};