UNPKG

@accounter/client

Version:
1 lines • 5.29 kB
import{t as e}from"./funnel-DYKZrHgK.js";import{$u as t,Dd as n,Hi as r,Kl as i,Ml as a,N as o,Nd as s,Rd as c,Tu as l,cc as u,er as d,ln as f,rr as p}from"./index-BdWApCqi.js";import{t as m}from"./page-layout-9Fp4HhGU.js";import{t as h}from"./report-commentary-row-C4wnOPZ3.js";var g=c(s(),1),_=l();function v({year:t,setYear:n,referenceYears:r,setReferenceYears:a}){let[s,c]=(0,g.useState)(!1);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(o,{opened:s,onClose:()=>c(!1),withCloseButton:!0,content:(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(f,{label:`Change report year`,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,_.jsx)(f,{type:`multiple`,label:`Pick reference years`,value:r?.map(e=>new Date(e,0,1)),onChange:e=>a(e.map(e=>e.getFullYear()).filter(e=>t!==e)),popoverProps:{withinPortal:!0},minDate:new Date(2010,0,1),maxDate:new Date})]})}),(0,_.jsx)(i,{variant:`outline`,size:`icon`,className:`size-7.5`,onClick:()=>c(!0),children:(0,_.jsx)(e,{className:`size-5`})})]})}var y=()=>{let{year:e}=n(),{setFiltersContext:i}=(0,g.useContext)(d),[o,s]=(0,g.useState)(e?Number(e):new Date().getFullYear()),[c,l]=(0,g.useState)([]),[{data:f,fetching:y}]=a({query:r(u),variables:{reportYear:o,referenceYears:c}});(0,g.useEffect)(()=>{i((0,_.jsx)(`div`,{className:`flex flex-row gap-2`,children:(0,_.jsx)(v,{year:o,setYear:s,referenceYears:c,setReferenceYears:l})}))},[o,y,i,c,l]);let b=f?.profitAndLossReport,x=b?.report,S=b?.reference??[];return(0,_.jsx)(m,{title:`Profit and Loss Report`,children:y?(0,_.jsx)(t,{className:`h-10 w-10 animate-spin mr-2 self-center`}):(0,_.jsx)(`div`,{className:`flex flex-col gap-4`,children:x&&(0,_.jsxs)(p,{highlightOnHover:!0,fontSize:`md`,children:[(0,_.jsx)(`thead`,{children:(0,_.jsxs)(`tr`,{children:[(0,_.jsx)(`th`,{}),(0,_.jsx)(`th`,{children:o},o),(0,_.jsx)(`th`,{}),S.map(e=>(0,_.jsx)(`th`,{children:e.year},e.year))]})}),(0,_.jsxs)(`tbody`,{children:[(0,_.jsx)(h,{dataRow:e=>(0,_.jsxs)(`tr`,{children:[(0,_.jsx)(`th`,{children:`Revenue`}),(0,_.jsx)(`th`,{children:x.revenue.amount.formatted}),(0,_.jsx)(`th`,{children:e}),S.map(e=>(0,_.jsx)(`th`,{children:e.revenue.amount.formatted},e.year))]}),commentaryData:x.revenue}),(0,_.jsx)(h,{dataRow:e=>(0,_.jsxs)(`tr`,{children:[(0,_.jsx)(`td`,{children:`Cost of Sales`}),(0,_.jsx)(`td`,{children:x.costOfSales.amount.formatted}),(0,_.jsx)(`th`,{children:e}),S.map(e=>(0,_.jsx)(`td`,{children:e.costOfSales.amount.formatted},e.year))]}),commentaryData:x.costOfSales}),(0,_.jsxs)(`tr`,{children:[(0,_.jsx)(`th`,{children:`Gross Profit`}),(0,_.jsx)(`th`,{children:x.grossProfit.formatted}),(0,_.jsx)(`th`,{}),S.map(e=>(0,_.jsx)(`th`,{children:e.grossProfit.formatted},e.year))]}),(0,_.jsx)(h,{dataRow:e=>(0,_.jsxs)(`tr`,{children:[(0,_.jsx)(`td`,{children:`R&D Expenses`}),(0,_.jsx)(`td`,{children:x.researchAndDevelopmentExpenses.amount.formatted}),(0,_.jsx)(`th`,{children:e}),S.map(e=>(0,_.jsx)(`td`,{children:e.researchAndDevelopmentExpenses.amount.formatted},e.year))]}),commentaryData:x.researchAndDevelopmentExpenses}),(0,_.jsx)(h,{dataRow:e=>(0,_.jsxs)(`tr`,{children:[(0,_.jsx)(`td`,{children:`Marketing Expenses`}),(0,_.jsx)(`td`,{children:x.marketingExpenses.amount.formatted}),(0,_.jsx)(`th`,{children:e}),S.map(e=>(0,_.jsx)(`td`,{children:e.marketingExpenses.amount.formatted},e.year))]}),commentaryData:x.marketingExpenses}),(0,_.jsx)(h,{dataRow:e=>(0,_.jsxs)(`tr`,{children:[(0,_.jsx)(`td`,{children:`Management and General Expenses`}),(0,_.jsx)(`td`,{children:x.managementAndGeneralExpenses.amount.formatted}),(0,_.jsx)(`th`,{children:e}),S.map(e=>(0,_.jsx)(`td`,{children:e.managementAndGeneralExpenses.amount.formatted},e.year))]}),commentaryData:x.managementAndGeneralExpenses}),(0,_.jsxs)(`tr`,{children:[(0,_.jsx)(`th`,{children:`Operating Profit`}),(0,_.jsx)(`th`,{children:x.operatingProfit.formatted}),(0,_.jsx)(`th`,{}),S.map(e=>(0,_.jsx)(`th`,{children:e.operatingProfit.formatted},e.year))]}),(0,_.jsx)(h,{dataRow:e=>(0,_.jsxs)(`tr`,{children:[(0,_.jsx)(`td`,{children:`Financial Expenses`}),(0,_.jsx)(`td`,{children:x.financialExpenses.amount.formatted}),(0,_.jsx)(`th`,{children:e}),S.map(e=>(0,_.jsx)(`td`,{children:e.financialExpenses.amount.formatted},e.year))]}),commentaryData:x.financialExpenses}),(0,_.jsx)(h,{dataRow:e=>(0,_.jsxs)(`tr`,{children:[(0,_.jsx)(`td`,{children:`Other Income`}),(0,_.jsx)(`td`,{children:x.otherIncome.amount.formatted}),(0,_.jsx)(`th`,{children:e}),S.map(e=>(0,_.jsx)(`td`,{children:e.otherIncome.amount.formatted},e.year))]}),commentaryData:x.otherIncome}),(0,_.jsxs)(`tr`,{children:[(0,_.jsx)(`th`,{children:`Profit Before Tax`}),(0,_.jsx)(`th`,{children:x.profitBeforeTax.formatted}),(0,_.jsx)(`th`,{}),S.map(e=>(0,_.jsx)(`th`,{children:e.profitBeforeTax.formatted},e.year))]}),(0,_.jsxs)(`tr`,{children:[(0,_.jsx)(`td`,{children:`Tax`}),(0,_.jsx)(`td`,{children:x.tax.formatted}),(0,_.jsx)(`td`,{}),S.map(e=>(0,_.jsx)(`td`,{children:e.tax.formatted},e.year))]})]}),(0,_.jsx)(`tfoot`,{children:(0,_.jsxs)(`tr`,{children:[(0,_.jsx)(`th`,{children:`Net Profit`}),(0,_.jsx)(`th`,{children:x.netProfit.formatted}),(0,_.jsx)(`th`,{}),S.map(e=>(0,_.jsx)(`th`,{children:e.netProfit.formatted},e.year))]})})]})})})};export{y as ProfitAndLossReport};