@accounter/client
Version:
Accounter client application
2 lines • 7.34 kB
JavaScript
import{s as e}from"./dist-C51EwTaa.js";import{i as t,o as n}from"./utils-DdVdMk8X.js";import{Lo as r,Po as i,Rn as a,Xr as o}from"./error-handling-Dpfd9svJ.js";import{ft as s}from"./select-CrsvQyhZ.js";import{Lt as c,W as l,a as u,c as d,i as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y}from"./table--bF0wbxq.js";import{$t as b,Bt as x,Pt as S,Sr as C,cn as w}from"./index-CL8-JoMZ.js";import{t as T}from"./page-layout-DoLDsSrs.js";var E=e(n(),1),D=t(),O=({data:e,year:t})=>{let n=(0,E.useCallback)(async()=>e?{fileContent:A(l(o,e)),fileName:`${t}_ledger`}:{fileContent:``,fileName:``},[e,t]);return e?(0,D.jsx)(b,{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=C(a.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:e}=(0,E.useContext)(w),[t,n]=(0,E.useState)(new Date().getFullYear()-1),[{data:a,fetching:o}]=r({query:i,variables:{year:t}}),c=a?.yearlyLedgerReport,{financialEntitiesInfo:l}=c??{},b=d({data:(0,E.useMemo)(()=>l?.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}))})??[],[l]),columns:N,getCoreRowModel:y(),getPaginationRowModel:h(),initialState:{pagination:{pageSize:100}}}),C=b.getState().pagination.pageIndex;return(0,E.useEffect)(()=>{e((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)(x,{table:b})}),(0,D.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,D.jsx)(S,{value:new Date(t,0,1),onChange:e=>e&&n(e?.getFullYear()),popoverProps:{withinPortal:!0},minDate:new Date(2010,0,1),maxDate:new Date}),(0,D.jsx)(O,{data:c,year:t})]})]}))},[t,o,e,c,b,C]),(0,D.jsx)(T,{title:`Yearly Ledger Report`,children:o?(0,D.jsx)(s,{className:`h-10 w-10 animate-spin mr-2 self-center`}):c?(0,D.jsx)(`div`,{className:`flex flex-col gap-4 rounded-md border`,children:(0,D.jsxs)(v,{children:[(0,D.jsx)(u,{children:b.getHeaderGroups().map(e=>(0,D.jsx)(m,{children:e.headers.map(e=>(0,D.jsx)(f,{children:e.isPlaceholder?null:_(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,D.jsx)(p,{children:b.getRowModel().rows.map((e,t)=>{let n=b.getRowModel().rows[t-1],r=b.getRowModel().rows[t+1],i=!n||n.original.entity.id!==e.original.entity.id,a=!r||r.original.entity.id!==e.original.entity.id;return(0,D.jsxs)(D.Fragment,{children:[i&&t!==0&&(0,D.jsx)(m,{className:`border-y-2 border-t-gray-300 border-b-gray-500`,children:(0,D.jsx)(g,{})}),i&&(0,D.jsx)(F,{row:e}),(0,D.jsx)(m,{children:e.getVisibleCells().map(e=>(0,D.jsx)(g,{children:_(e.column.columnDef.cell,e.getContext())},e.id))},e.id),a&&(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)(m,{className:`bg-gray-300`,children:[(0,D.jsx)(g,{children:(0,D.jsx)(`div`,{className:`font-medium`,children:e.original.entity.name})}),(0,D.jsx)(g,{children:(0,D.jsx)(`div`,{className:`font-medium`,children:e.original.entity.sortCode?.key})}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{})]},`${e.id}-opening1`),(0,D.jsxs)(m,{className:`bg-gray-200`,children:[(0,D.jsx)(g,{}),(0,D.jsx)(g,{children:(0,D.jsx)(`div`,{className:`font-medium`,children:`Opening Balance`})}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{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)(m,{className:`bg-gray-200`,children:[(0,D.jsx)(g,{children:(0,D.jsx)(`div`,{className:`font-medium`,children:`Total`})}),(0,D.jsx)(g,{children:(0,D.jsx)(`div`,{className:`font-medium`,children:e.original.entity.name})}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{children:(0,D.jsxs)(`div`,{className:`font-medium`,children:[M.format(e.original.totalDebit.raw),` Debit`]})}),(0,D.jsx)(g,{})]},`${e.id}-totals1`),(0,D.jsxs)(m,{className:`bg-gray-200`,children:[(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{children:(0,D.jsxs)(`div`,{className:`font-medium`,children:[M.format(e.original.totalCredit.raw),` Credit`]})}),(0,D.jsx)(g,{children:(0,D.jsx)(`div`,{className:`font-medium`,children:M.format(e.original.closingBalance.raw)})})]},`${e.id}-totals2`),(0,D.jsxs)(m,{className:`bg-gray-200`,children:[(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{}),(0,D.jsx)(g,{children:(0,D.jsxs)(`div`,{className:`font-medium`,children:[M.format(e.original.totalCredit.raw-e.original.totalDebit.raw),` Diff`]})}),(0,D.jsx)(g,{})]},`${e.id}-totals3`)]})}export{P as YearlyLedgerReport};