UNPKG

@accounter/client

Version:
2 lines • 7.17 kB
import{Al as e,B as t,Cu as n,G as r,H as i,Id as a,Js as o,K as s,Ml as c,Ol as l,Q as u,Tn as d,U as f,Un as p,V as m,W as h,Xn as g,Y as _,Yi as v,Zu as y,ds as b,er as x,jd as S,ln as C,q as w}from"./index-CSYTUOOk.js";import{t as T}from"./page-layout-DE94O32j.js";var E=a(S(),1),D=n(),O=({data:e,year:t})=>{let n=(0,E.useCallback)(async()=>e?{fileContent:A(g(o,e)),fileName:`${t}_ledger`}:{fileContent:``,fileName:``},[e,t]);return e?(0,D.jsx)(p,{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=v(b.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:n}=(0,E.useContext)(x),[a,o]=(0,E.useState)(new Date().getFullYear()-1),[{data:c,fetching:p}]=e({query:l,variables:{year:a}}),g=c?.yearlyLedgerReport,{financialEntitiesInfo:v}=g??{},b=w({data:(0,E.useMemo)(()=>v?.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}))})??[],[v]),columns:N,getCoreRowModel:_(),getPaginationRowModel:u(),initialState:{pagination:{pageSize:100}}}),S=b.getState().pagination.pageIndex;return(0,E.useEffect)(()=>{n((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(a,0,1),onChange:e=>e&&o(e?.getFullYear()),popoverProps:{withinPortal:!0},minDate:new Date(2010,0,1),maxDate:new Date}),(0,D.jsx)(O,{data:g,year:a})]})]}))},[a,p,n,g,b,S]),(0,D.jsx)(T,{title:`Yearly Ledger Report`,children:p?(0,D.jsx)(y,{className:`h-10 w-10 animate-spin mr-2 self-center`}):g?(0,D.jsx)(`div`,{className:`flex flex-col gap-4 rounded-md border`,children:(0,D.jsxs)(t,{children:[(0,D.jsx)(h,{children:b.getHeaderGroups().map(e=>(0,D.jsx)(r,{children:e.headers.map(e=>(0,D.jsx)(f,{children:e.isPlaceholder?null:s(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,D.jsx)(m,{children:b.getRowModel().rows.map((e,t)=>{let n=b.getRowModel().rows[t-1],a=b.getRowModel().rows[t+1],o=!n||n.original.entity.id!==e.original.entity.id,c=!a||a.original.entity.id!==e.original.entity.id;return(0,D.jsxs)(D.Fragment,{children:[o&&t!==0&&(0,D.jsx)(r,{className:`border-y-2 border-t-gray-300 border-b-gray-500`,children:(0,D.jsx)(i,{})}),o&&(0,D.jsx)(F,{row:e}),(0,D.jsx)(r,{children:e.getVisibleCells().map(e=>(0,D.jsx)(i,{children:s(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};