@accounter/client
Version:
Accounter client application
2 lines • 7.39 kB
JavaScript
import{s as e}from"./dist-ypP48_Ax.js";import{i as t,o as n}from"./utils-CbS-oR5I.js";import{Ln as r,Zo as i,Zr as a,qo as o}from"./error-handling-Ba16dd60.js";import{dt as s}from"./select-CGZdhlc6.js";import{It as c,St as l,er as u,gt as d}from"./common-1Fu9tchs.js";import{c as f}from"./separator-PpapAwKS.js";import{Ul as p,Zc as m,a as h,c as g,d as _,i as v,n as y,o as b,r as x,s as S,t as C}from"./table-Bh5lVpZi.js";import{t as w}from"./page-layout-Bwes2wnp.js";var T=e(n(),1),E=t(),D=({data:e,year:t})=>{let n=(0,T.useCallback)(async()=>e?{fileContent:k(m(a,e)),fileName:`${t}_ledger`}:{fileContent:``,fileName:``},[e,t]);return e?(0,E.jsx)(c,{createFileVariables:n}):(0,E.jsx)(`div`,{})},O=[{key:``,valueFn:()=>``},{key:``,valueFn:()=>``},{key:`Counterparty`,valueFn:e=>A(e.counterParty?.name??``)},{key:`Invoice Date`,valueFn:e=>p(e.invoiceDate,`yyyy-MM-dd`)},{key:`Value Date`,valueFn:e=>p(e.valueDate,`yyyy-MM-dd`)},{key:`Reference`,valueFn:e=>e.reference?`"${A(e.reference)}"`:``},{key:`Description`,valueFn:e=>e.description?`"${A(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)}],k=e=>{let t=[O.map(({key:e})=>e).join(`,`)];return e.financialEntitiesInfo.map(e=>{let n=`${A(e.entity.name)},${e.entity.sortCode?.key}`,r=`,Opening Balance,,,,,,,,${e.openingBalance.raw.toFixed(2)}`,i=`Total,${A(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=>O.map(({valueFn:t})=>t(e)).join(`,`)),i,a,o)}),t.join(`\r
`)};function A(e){return e.replace(/"/g,`""`).replace(/,/g,`.`)}var j=u(r.Ils),M=[{id:`placeholder`,header:``,cell:()=>null},{id:`counterparty`,accessorKey:`counterparty`,header:`Counterparty`,cell:({row:e})=>(0,E.jsx)(`div`,{className:`font-medium`,children:e.original.counterParty?.name})},{id:`invoiceDate`,accessorKey:`invoiceDate`,header:`Invoice Date`,cell:({row:e})=>{let t=new Date(e.getValue(`invoiceDate`)),n=p(t,`yyyy-MM-dd`);return(0,E.jsx)(`div`,{className:`font-medium`,children:n})}},{id:`valueDate`,accessorKey:`valueDate`,header:`Value Date`,cell:({row:e})=>{let t=new Date(e.getValue(`valueDate`)),n=p(t,`yyyy-MM-dd`);return(0,E.jsx)(`div`,{className:`font-medium`,children:n})}},{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,E.jsx)(`div`,{className:`font-medium`,children:j.format(t*-1)}):null}},{id:`credit`,header:`Credit`,cell:({row:e})=>{let t=e.original.amount.raw;return t>=0?(0,E.jsx)(`div`,{className:`font-medium`,children:j.format(t)}):null}},{id:`balance`,accessorKey:`balance`,header:`Balance`,cell:({row:e})=>(0,E.jsx)(`div`,{className:`font-medium`,children:j.format(e.getValue(`balance`))})}],N=()=>{let{setFiltersContext:e}=(0,T.useContext)(f),[t,n]=(0,T.useState)(new Date().getFullYear()-1),[{data:r,fetching:a}]=i({query:o,variables:{year:t}}),c=r?.yearlyLedgerReport,{financialEntitiesInfo:u}=c??{},p=(0,T.useMemo)(()=>u?.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}))})??[],[u]),m=g({features:S,data:p,columns:M,initialState:{pagination:{pageIndex:0,pageSize:100}}}),O=m.state.pagination.pageIndex;return(0,T.useEffect)(()=>{e((0,E.jsxs)(`div`,{className:`flex items-center justify-end gap-10 space-x-2 py-4`,children:[(0,E.jsx)(`div`,{className:`flex items-center justify-between px-2`,children:(0,E.jsx)(l,{table:m})}),(0,E.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,E.jsx)(d,{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,E.jsx)(D,{data:c,year:t})]})]}))},[t,a,e,c,m,O]),(0,E.jsx)(w,{title:`Yearly Ledger Report`,children:a?(0,E.jsx)(s,{className:`h-10 w-10 animate-spin mr-2 self-center`}):c?(0,E.jsx)(`div`,{className:`flex flex-col gap-4 rounded-md border`,children:(0,E.jsxs)(C,{children:[(0,E.jsx)(h,{children:m.getHeaderGroups().map(e=>(0,E.jsx)(b,{children:e.headers.map(e=>(0,E.jsx)(v,{children:e.isPlaceholder?null:_(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,E.jsx)(y,{children:m.getRowModel().rows.map((e,t)=>{let n=m.getRowModel().rows[t-1],r=m.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,E.jsxs)(E.Fragment,{children:[i&&t!==0&&(0,E.jsx)(b,{className:`border-y-2 border-t-gray-300 border-b-gray-500`,children:(0,E.jsx)(x,{})}),i&&(0,E.jsx)(P,{row:e}),(0,E.jsx)(b,{children:e.getVisibleCells().map(e=>(0,E.jsx)(x,{children:_(e.column.columnDef.cell,e.getContext())},e.id))},e.id),a&&(0,E.jsx)(F,{row:e})]})})})]})}):(0,E.jsx)(`div`,{className:`rounded-md border h-24 text-center`,children:`No results.`})})};function P({row:e}){return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsxs)(b,{className:`bg-gray-300`,children:[(0,E.jsx)(x,{children:(0,E.jsx)(`div`,{className:`font-medium`,children:e.original.entity.name})}),(0,E.jsx)(x,{children:(0,E.jsx)(`div`,{className:`font-medium`,children:e.original.entity.sortCode?.key})}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{})]},`${e.id}-opening1`),(0,E.jsxs)(b,{className:`bg-gray-200`,children:[(0,E.jsx)(x,{}),(0,E.jsx)(x,{children:(0,E.jsx)(`div`,{className:`font-medium`,children:`Opening Balance`})}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{children:(0,E.jsx)(`div`,{className:`font-medium`,children:j.format(e.original.openingBalance.raw)})})]},`${e.id}-opening2`)]})}function F({row:e}){return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsxs)(b,{className:`bg-gray-200`,children:[(0,E.jsx)(x,{children:(0,E.jsx)(`div`,{className:`font-medium`,children:`Total`})}),(0,E.jsx)(x,{children:(0,E.jsx)(`div`,{className:`font-medium`,children:e.original.entity.name})}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{children:(0,E.jsxs)(`div`,{className:`font-medium`,children:[j.format(e.original.totalDebit.raw),` Debit`]})}),(0,E.jsx)(x,{})]},`${e.id}-totals1`),(0,E.jsxs)(b,{className:`bg-gray-200`,children:[(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{children:(0,E.jsxs)(`div`,{className:`font-medium`,children:[j.format(e.original.totalCredit.raw),` Credit`]})}),(0,E.jsx)(x,{children:(0,E.jsx)(`div`,{className:`font-medium`,children:j.format(e.original.closingBalance.raw)})})]},`${e.id}-totals2`),(0,E.jsxs)(b,{className:`bg-gray-200`,children:[(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{}),(0,E.jsx)(x,{children:(0,E.jsxs)(`div`,{className:`font-medium`,children:[j.format(e.original.totalCredit.raw-e.original.totalDebit.raw),` Diff`]})}),(0,E.jsx)(x,{})]},`${e.id}-totals3`)]})}export{N as YearlyLedgerReport};