UNPKG

@accounter/client

Version:
1 lines 24.4 kB
import{s as e}from"./dist-ypP48_Ax.js";import{i as t,o as n}from"./utils-CbS-oR5I.js";import{r}from"./error-handling-CKe_iwSC.js";import{n as i,s as a,t as o}from"./routes-Cawu7UJi.js";import{n as s,t as c}from"./loader-circle-CfW9jOIr.js";import{n as l,t as u}from"./charges-table-CuQosBJ7.js";import{$n as d,Ar as f,Et as p,J as m,Jt as h,Sr as g,Tt as _,W as v,Yn as y,_t as ee,ct as te,f as ne,in as b,p as re,xr as x,zt as S}from"./common-1_Okklf2.js";import{dt as C,pt as w}from"./select-Zdatwv1b.js";import{c as ie}from"./separator-CYWzJ3fQ.js";import{t as ae}from"./funnel-BrJTCiKR.js";import{t as T}from"./button-DUNsVBiu.js";import{$c as oe,Jc as E,Ul as D,Xc as se,Zc as O,a as k,c as A,d as j,i as M,jl as ce,n as N,o as P,r as F,s as I,t as L}from"./table-BH90HlS-.js";import{t as R}from"./card-DR4aRSHr.js";import{Bo as le,Dr as ue,Go as de,Ho as fe,Ko as pe,Lo as me,Pn as z,Qo as B,Ro as he,Uo as V,Vo as H,Wo as ge,Yt as U,zo as _e}from"./graphql-CZpXP3_l.js";import{t as ve}from"./files-D4cmudBT.js";import{t as W}from"./graphql-document-dedupe-fragments-C4jAugiJ.js";import{t as G}from"./columnHelper-BPS5AuUP.js";import{t as K}from"./use-url-query-Bb8ddrDs.js";import{t as ye}from"./page-layout-C1eRCELx.js";import{n as be}from"./charges-filters-tXgDQuLs.js";var xe=s(`chart-column`,[[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`,key:`c24i48`}],[`path`,{d:`M18 17V9`,key:`2bz60n`}],[`path`,{d:`M13 17V5`,key:`1frdt8`}],[`path`,{d:`M8 17v-3`,key:`17ska0`}]]),Se=s(`file-digit`,[[`path`,{d:`M4 12V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2`,key:`jrl274`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 16h2v6`,key:`1bxocy`}],[`path`,{d:`M10 22h4`,key:`ceow96`}],[`rect`,{x:`2`,y:`16`,width:`4`,height:`6`,rx:`2`,key:`r45zd0`}]]),q=e(n(),1),J=t(),Ce=({data:e,rowSelection:t,onRowSelectionChange:n})=>{let r=O(_e,e),[i,a]=(0,q.useState)(!0);return(0,J.jsxs)(R,{className:`p-6`,children:[(0,J.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,J.jsxs)(`h2`,{className:`text-lg font-semibold flex items-center gap-2`,children:[(0,J.jsx)(T,{variant:`outline`,size:`icon`,className:`size-7.5`,onClick:()=>a(e=>!e),disabled:!r||r.businessTrips.length===0,children:i?(0,J.jsx)(g,{className:`size-5`}):(0,J.jsx)(x,{className:`size-5`})}),`Business Trips`]})}),i&&r&&(0,J.jsx)(u,{data:r.businessTrips,rowSelection:t,onRowSelectionChange:n})]})};function Y(e){switch(e){case`C`:case`M`:return`Self Invoice`;case`H`:return`Single Doc By Law`;case`I`:return`Palestinian Customer`;case`K`:return`Petty Cash`;case`L1`:return`Unidentified Customer`;case`L2`:return`Unidentified Zero or Exempt`;case`P`:return`Palestinian Supplier`;case`R`:return`Import`;case`S1`:case`T`:return`Regular`;case`S2`:return`Zero or Exempt`;case`Y`:return`Export`;default:return`Unknown`}}var we=e=>{let t=e.reduce((e,t)=>(e[t.recordType]||={recordType:t.recordType,count:0,vatTotal:0,totalBeforeVat:0},e[t.recordType].count++,e[t.recordType].vatTotal+=t.roundedLocalVatAfterDeduction?.raw??0,e[t.recordType].totalBeforeVat+=t.taxReducedLocalAmount?.raw??0,e),{});return Object.values(t)},Te=({records:e})=>{let t=(0,q.useMemo)(()=>we(e??[]),[e]);return(0,J.jsx)(`div`,{className:`overflow-x-auto`,children:(0,J.jsxs)(`table`,{className:`w-full`,children:[(0,J.jsx)(`thead`,{children:(0,J.jsxs)(`tr`,{className:`border-b border-border text-left`,children:[(0,J.jsx)(`th`,{className:`pb-3 text-sm font-medium text-muted-foreground`,children:`Record Type`}),(0,J.jsx)(`th`,{className:`pb-3 text-sm font-medium text-muted-foreground text-right`,children:`Count`}),(0,J.jsx)(`th`,{className:`pb-3 text-sm font-medium text-muted-foreground text-right`,children:`Total Before VAT`}),(0,J.jsx)(`th`,{className:`pb-3 text-sm font-medium text-muted-foreground text-right`,children:`VAT Total`})]})}),(0,J.jsx)(`tbody`,{children:t.map(e=>(0,J.jsxs)(`tr`,{className:`border-b border-border/50`,children:[(0,J.jsxs)(`td`,{className:`py-3 text-sm font-medium`,children:[Y(e.recordType),` (`,e.recordType,`)`]}),(0,J.jsx)(`td`,{className:`py-3 text-sm text-right`,children:e.count}),(0,J.jsx)(`td`,{className:`py-3 text-sm text-right`,children:d(e.totalBeforeVat,z.Ils)}),(0,J.jsx)(`td`,{className:`py-3 text-sm text-right`,children:d(e.vatTotal,z.Ils)})]},e.recordType))})]})})};function Ee({data:e}){let{chargeId:t,chargeAccountantStatus:n}=O(he,e);return(0,J.jsx)(`td`,{children:(0,J.jsx)(m,{value:n??void 0,chargeId:t})})}var X=G(),Z=X.columns([X.accessor(e=>O(H,e.data).recordType,{id:`recordType`,header:`Record Type`,cell:e=>{let t=e.getValue();return(0,J.jsx)(`p`,{className:`whitespace-wrap`,children:`${Y(t)} (${t})`})}}),X.accessor(e=>O(H,e.data).business?.name??``,{id:`business`,header:`Business`,cell:e=>{let t=O(H,e.row.original.data);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[t.business?.id?(0,J.jsx)(a,{to:o.BUSINESSES.DETAIL(t.business.id),target:`_blank`,rel:`noreferrer`,onClick:e=>e.stopPropagation(),className:`inline-flex items-center font-semibold`,children:t.business.name}):(0,J.jsx)(`span`,{children:t.business?.name}),t.vatNumber&&(0,J.jsx)(`span`,{className:`text-[10px] text-gray-500`,children:t.vatNumber})]})}}),X.display({id:`invoice`,header:`Invoice`,cell:e=>{let t=O(H,e.row.original.data);return t.image?(0,J.jsx)(`a`,{href:t.image,target:`_blank`,rel:`noreferrer`,children:(0,J.jsx)(`img`,{alt:`missing img`,src:t.image,height:80,width:80})}):null}}),X.accessor(e=>O(H,e.data).documentSerial??``,{id:`documentSerial`,header:`Invoice Serial#`,cell:e=>{let t=O(H,e.row.original.data);return(0,J.jsxs)(`div`,{className:`flex flex-col`,children:[(0,J.jsx)(`span`,{children:e.getValue()}),t.allocationNumber&&(0,J.jsxs)(`span`,{className:`text-xs`,children:[`(`,t.allocationNumber,`)`]})]})}}),X.accessor(e=>O(H,e.data).documentDate??``,{id:`documentDate`,header:`Invoice Date`,cell:e=>e.getValue()}),X.accessor(e=>O(H,e.data).chargeDate??``,{id:`chargeDate`,header:`Transaction Date`,cell:e=>e.getValue()}),X.accessor(e=>O(H,e.data).amount.raw??0,{id:`amount`,header:`Amount`,cell:e=>{let t=O(H,e.row.original.data);return(0,J.jsx)(`span`,{className:`whitespace-nowrap`,children:t.amount.formatted})}}),X.accessor(e=>O(H,e.data).localAmount?.raw??0,{id:`localAmount`,header:`Amount ₪`,cell:e=>{let t=O(H,e.row.original.data);return(0,J.jsx)(`span`,{className:`whitespace-nowrap`,children:t.localAmount?.formatted})}}),X.accessor(e=>O(H,e.data).localVat?.raw??0,{id:`localVat`,header:`VAT`,cell:e=>{let t=O(H,e.row.original.data);return(0,J.jsx)(`span`,{className:`whitespace-nowrap`,children:t.localVat?.formatted})}}),X.accessor(e=>O(H,e.data).localVatAfterDeduction?.raw??0,{id:`localVatAfterDeduction`,header:`VAT ₪`,cell:e=>{let t=O(H,e.row.original.data);return(0,J.jsx)(`span`,{className:`whitespace-nowrap`,children:t.localVatAfterDeduction?.formatted})}}),X.accessor(e=>O(H,e.data).foreignVatAfterDeduction?.raw??0,{id:`foreignVatAfterDeduction`,header:`Actual VAT`,cell:e=>{let t=O(H,e.row.original.data);return(0,J.jsx)(`span`,{className:`whitespace-nowrap`,children:t.foreignVatAfterDeduction?.formatted})}}),X.accessor(e=>O(H,e.data).roundedLocalVatAfterDeduction?.raw??0,{id:`roundedLocalVatAfterDeduction`,header:`Rounded VAT`,cell:e=>{let t=O(H,e.row.original.data);return(0,J.jsx)(`span`,{className:`whitespace-nowrap`,children:t.roundedLocalVatAfterDeduction?.formatted})}}),X.accessor(e=>e.cumulativeVat,{id:`cumulativeVat`,header:`Cumulative VAT`,cell:e=>(0,J.jsxs)(`span`,{className:`whitespace-nowrap`,children:[`₪ `,y(e.getValue(),0)]})}),X.accessor(e=>O(H,e.data).taxReducedLocalAmount?.raw??0,{id:`taxReducedLocalAmount`,header:`Amount without VAT ₪`,cell:e=>{let t=O(H,e.row.original.data);return(0,J.jsx)(`span`,{className:`whitespace-nowrap`,children:t.taxReducedLocalAmount?.formatted})}}),X.accessor(e=>e.cumulativeAmount,{id:`cumulativeAmount`,header:`Cumulative Amount without VAT ₪`,cell:e=>(0,J.jsxs)(`span`,{className:`whitespace-nowrap`,children:[`₪ `,y(e.getValue(),0)]})}),X.display({id:`accountantApproval`,header:`Accountant Approval`,cell:e=>{let t=O(H,e.row.original.data);return(0,J.jsx)(Ee,{data:t})}}),X.display({id:`actions`,header:`Edit`,cell:e=>{let t=O(H,e.row.original.data);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,J.jsx)(p,{toggleExpansion:()=>e.row.toggleExpanded(),isExpanded:e.row.getIsExpanded()}),(0,J.jsx)(_,{toggleMergeSelected:()=>e.row.original.toggleMergeCharge(t.chargeId),mergeSelected:e.row.original.mergeSelectedCharges.has(t.chargeId)}),(0,J.jsx)(S,{chargeId:t.chargeId})]})}})]),De=({data:e,toggleMergeCharge:t,mergeSelectedCharges:n})=>{let{expenses:r}=O(le,e)??{expenses:[]},[i,a]=(0,q.useState)(!0),[o,s]=(0,q.useState)([]),[c,u]=(0,q.useState)({}),[d,p]=(0,q.useState)({}),[m,h]=(0,q.useState)(`detailed`),_=(0,q.useMemo)(()=>{let e=0,i=0,a=[];for(let o of r)e+=o.taxReducedLocalAmount?.raw??0,i+=o.roundedLocalVatAfterDeduction?.raw??0,a.push({data:o,toggleMergeCharge:t,mergeSelectedCharges:n,cumulativeVat:i,cumulativeAmount:e});return a},[r,t,n]),v=A({features:I,data:_,columns:Z,onSortingChange:s,onColumnVisibilityChange:u,onExpandedChange:p,getRowCanExpand:()=>!0,state:{sorting:o,columnVisibility:c,expanded:d}});return(0,J.jsxs)(R,{className:`p-6`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,J.jsxs)(`h2`,{className:`text-lg font-semibold flex items-center gap-2`,children:[(0,J.jsx)(T,{variant:`outline`,size:`icon`,className:`size-7.5`,onClick:()=>a(e=>!e),children:i?(0,J.jsx)(g,{className:`size-5`}):(0,J.jsx)(x,{className:`size-5`})}),`Expenses`]}),i&&(0,J.jsxs)(`div`,{className:`flex gap-2`,children:[(0,J.jsxs)(T,{variant:m===`detailed`?`default`:`outline`,size:`sm`,onClick:()=>h(`detailed`),children:[(0,J.jsx)(f,{className:`h-4 w-4 mr-2`}),`Detailed`]}),(0,J.jsxs)(T,{variant:m===`summarized`?`default`:`outline`,size:`sm`,onClick:()=>h(`summarized`),children:[(0,J.jsx)(xe,{className:`h-4 w-4 mr-2`}),`Summarized`]})]})]}),i&&(m===`detailed`?(0,J.jsxs)(L,{children:[(0,J.jsx)(k,{children:v.getHeaderGroups().map(e=>(0,J.jsx)(P,{children:e.headers.map(e=>(0,J.jsx)(M,{colSpan:e.colSpan,children:e.isPlaceholder?null:(0,J.jsxs)(T,{variant:`ghost`,onClick:e.column.getToggleSortingHandler(),className:`h-auto p-0 hover:bg-transparent`,children:[j(e.column.columnDef.header,e.getContext()),{asc:(0,J.jsx)(C,{className:`size-5`}),desc:(0,J.jsx)(w,{className:`size-5`})}[e.column.getIsSorted()]??null]})},e.id))},e.id))}),(0,J.jsx)(N,{children:v.getRowModel().rows?.length?v.getRowModel().rows.map(e=>{let t=O(H,e.original.data);return(0,J.jsxs)(q.Fragment,{children:[(0,J.jsx)(P,{"data-state":e.getIsSelected()&&`selected`,children:e.getVisibleCells().map(e=>(0,J.jsx)(F,{children:j(e.column.columnDef.cell,e.getContext())},e.id))}),e.getIsExpanded()&&(0,J.jsx)(P,{children:(0,J.jsx)(F,{colSpan:Z.length,children:(0,J.jsx)(b,{style:{width:`100%`},withBorder:!0,shadow:`lg`,children:(0,J.jsx)(l,{chargeID:t.chargeId,fetching:!!t})})})})]},e.id)}):(0,J.jsx)(P,{children:(0,J.jsx)(F,{colSpan:Z.length,className:`h-24 text-center`,children:`No results.`})})})]}):(0,J.jsx)(Te,{records:r}))]})},Q=G(),$=Q.columns([Q.accessor(e=>O(V,e.data).recordType,{id:`recordType`,header:`Record Type`,cell:e=>{let t=e.getValue();return(0,J.jsx)(`p`,{className:`whitespace-wrap`,children:`${Y(t)} (${t})`})}}),Q.accessor(e=>O(V,e.data).business?.name??``,{id:`business`,header:`Business`,cell:e=>{let t=O(V,e.row.original.data);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[t.business?.id?(0,J.jsx)(a,{to:o.BUSINESSES.DETAIL(t.business.id),target:`_blank`,rel:`noreferrer`,onClick:e=>e.stopPropagation(),className:`inline-flex items-center font-semibold`,children:t.business.name}):(0,J.jsx)(`span`,{children:t.business?.name}),t.vatNumber&&(0,J.jsx)(`span`,{className:`text-[10px] text-gray-500`,children:t.vatNumber})]})}}),Q.display({id:`invoice`,header:`Invoice`,cell:e=>{let t=O(V,e.row.original.data);return t.image?(0,J.jsx)(`a`,{href:t.image,target:`_blank`,rel:`noreferrer`,children:(0,J.jsx)(`img`,{alt:`missing img`,src:t.image,height:80,width:80})}):null}}),Q.accessor(e=>O(V,e.data).documentSerial??``,{id:`documentSerial`,header:`Invoice Serial#`,cell:e=>{let t=O(V,e.row.original.data);return(0,J.jsxs)(`div`,{className:`flex flex-col`,children:[(0,J.jsx)(`span`,{children:e.getValue()}),t.allocationNumber&&(0,J.jsxs)(`span`,{className:`text-xs`,children:[`(`,t.allocationNumber,`)`]})]})}}),Q.accessor(e=>O(V,e.data).documentDate??``,{id:`documentDate`,header:`Invoice Date`,cell:e=>e.getValue()}),Q.accessor(e=>O(V,e.data).chargeDate??``,{id:`chargeDate`,header:`Transaction Date`,cell:e=>e.getValue()}),Q.accessor(e=>O(V,e.data).taxReducedForeignAmount?.raw??0,{id:`amount`,header:`Amount`,cell:e=>O(V,e.row.original.data).taxReducedForeignAmount?.formatted??``}),Q.accessor(e=>O(V,e.data).taxReducedLocalAmount?.raw??0,{id:`localAmount`,header:`Amount ₪`,cell:e=>O(V,e.row.original.data).taxReducedLocalAmount?.formatted??``}),Q.accessor(e=>e.cumulativeAmount,{id:`cumulativeAmount`,header:`Cumulative Amount ₪`,cell:e=>(0,J.jsxs)(`span`,{className:`whitespace-nowrap`,children:[`₪ `,y(e.getValue(),0)]})}),Q.display({id:`accountantApproval`,header:`Accountant Approval`,cell:e=>{let t=O(V,e.row.original.data);return(0,J.jsx)(Ee,{data:t})}}),Q.display({id:`actions`,header:`Edit`,cell:e=>{let t=O(V,e.row.original.data);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,J.jsx)(p,{toggleExpansion:()=>e.row.toggleExpanded(),isExpanded:e.row.getIsExpanded()}),(0,J.jsx)(_,{toggleMergeSelected:()=>e.row.original.toggleMergeCharge(t.chargeId),mergeSelected:e.row.original.mergeSelectedCharges.has(t.chargeId)}),(0,J.jsx)(S,{chargeId:t.chargeId})]})}})]),Oe=({data:e,toggleMergeCharge:t,mergeSelectedCharges:n})=>{let{income:r}=O(fe,e)??{income:[]},[i,a]=(0,q.useState)(!0),[o,s]=(0,q.useState)([]),[c,u]=(0,q.useState)({}),[d,p]=(0,q.useState)({}),[m,h]=(0,q.useState)(`detailed`),_=(0,q.useMemo)(()=>{let e=0,i=[];for(let a of r)e+=a.taxReducedLocalAmount?.raw??0,i.push({data:a,toggleMergeCharge:t,mergeSelectedCharges:n,cumulativeAmount:e});return i},[r,t,n]),v=A({features:I,data:_,columns:$,onSortingChange:s,onColumnVisibilityChange:u,onExpandedChange:p,getRowCanExpand:()=>!0,state:{sorting:o,columnVisibility:c,expanded:d}});return(0,J.jsxs)(R,{className:`p-6`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,J.jsxs)(`h2`,{className:`text-lg font-semibold flex items-center gap-2`,children:[(0,J.jsx)(T,{variant:`outline`,size:`icon`,className:`size-7.5`,onClick:()=>a(e=>!e),children:i?(0,J.jsx)(g,{className:`size-5`}):(0,J.jsx)(x,{className:`size-5`})}),`Income`]}),i&&(0,J.jsxs)(`div`,{className:`flex gap-2`,children:[(0,J.jsxs)(T,{variant:m===`detailed`?`default`:`outline`,size:`sm`,onClick:()=>h(`detailed`),children:[(0,J.jsx)(f,{className:`h-4 w-4 mr-2`}),`Detailed`]}),(0,J.jsxs)(T,{variant:m===`summarized`?`default`:`outline`,size:`sm`,onClick:()=>h(`summarized`),children:[(0,J.jsx)(xe,{className:`h-4 w-4 mr-2`}),`Summarized`]})]})]}),i&&(m===`detailed`?(0,J.jsxs)(L,{children:[(0,J.jsx)(k,{children:v.getHeaderGroups().map(e=>(0,J.jsx)(P,{children:e.headers.map(e=>(0,J.jsx)(M,{colSpan:e.colSpan,children:e.isPlaceholder?null:(0,J.jsxs)(T,{variant:`ghost`,onClick:e.column.getToggleSortingHandler(),className:`h-auto p-0 hover:bg-transparent`,children:[j(e.column.columnDef.header,e.getContext()),{asc:(0,J.jsx)(C,{className:`size-5`}),desc:(0,J.jsx)(w,{className:`size-5`})}[e.column.getIsSorted()]??null]})},e.id))},e.id))}),(0,J.jsx)(N,{children:v.getRowModel().rows?.length?v.getRowModel().rows.map(e=>{let t=O(V,e.original.data);return(0,J.jsxs)(q.Fragment,{children:[(0,J.jsx)(P,{"data-state":e.getIsSelected()&&`selected`,children:e.getVisibleCells().map(e=>(0,J.jsx)(F,{children:j(e.column.columnDef.cell,e.getContext())},e.id))}),e.getIsExpanded()&&(0,J.jsx)(P,{children:(0,J.jsx)(F,{colSpan:$.length,children:(0,J.jsx)(b,{style:{width:`100%`},withBorder:!0,shadow:`lg`,children:(0,J.jsx)(l,{chargeID:t.chargeId,fetching:!!t})})})})]},e.id)}):(0,J.jsx)(P,{children:(0,J.jsx)(F,{colSpan:$.length,className:`h-24 text-center`,children:`No results.`})})})]}):(0,J.jsx)(Te,{records:r}))]})},ke=({data:e,rowSelection:t,onRowSelectionChange:n})=>{let r=O(ge,e),[i,a]=(0,q.useState)(!0);return(0,J.jsxs)(R,{className:`p-6`,children:[(0,J.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,J.jsxs)(`h2`,{className:`text-lg font-semibold flex items-center gap-2`,children:[(0,J.jsx)(T,{variant:`outline`,size:`icon`,className:`size-7.5`,onClick:()=>a(e=>!e),disabled:!r||r.differentMonthDoc.length===0,children:i?(0,J.jsx)(g,{className:`size-5`}):(0,J.jsx)(x,{className:`size-5`})}),`Misc Charges (which are not on the above tables)`]})}),i&&r&&(0,J.jsx)(u,{data:r.differentMonthDoc,rowSelection:t,onRowSelectionChange:n})]})},Ae=({data:e,rowSelection:t,onRowSelectionChange:n})=>{let r=O(de,e),[i,a]=(0,q.useState)(!0);return(0,J.jsxs)(R,{className:`p-6`,children:[(0,J.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,J.jsxs)(`h2`,{className:`text-lg font-semibold flex items-center gap-2`,children:[(0,J.jsx)(T,{variant:`outline`,size:`icon`,className:`size-7.5`,onClick:()=>a(e=>!e),disabled:!r||r.missingInfo.length===0,children:i?(0,J.jsx)(g,{className:`size-5`}):(0,J.jsx)(x,{className:`size-5`})}),`Missing Info`]})}),i&&r&&(0,J.jsx)(u,{data:r.missingInfo,rowSelection:t,onRowSelectionChange:n,showExport:!0})]})},je=({filter:{monthDate:e,financialEntityId:t},isLoading:n})=>{let[{data:i,fetching:a,error:o},s]=B({query:W(ue),pause:!0,variables:{monthDate:e,financialEntityId:t}});return(0,q.useEffect)(()=>{if(o){let e=`Error generating PCN874 file`;console.error(`${e}: ${o}`),r.error(`Error`,{description:e,duration:5e3,closeButton:!0})}},[o]),(0,q.useEffect)(()=>{if(i){let e=new File([i.pcnFile.reportContent],`pcn874.txt`,{type:`text/plain`});ve(e)}},[i]),(0,J.jsx)(te,{content:`Generate and Download PCN874 File`,children:(0,J.jsx)(T,{disabled:a||n,variant:`outline`,size:`icon`,className:`size-7.5`,onClick:s,children:(0,J.jsx)(Se,{className:`size-5`})})})},Me=({data:e})=>{let t=O(pe,e),n=(0,q.useMemo)(()=>t?.expenses??[],[t?.expenses]),r=(0,q.useMemo)(()=>t?.income??[],[t?.income]),i=(0,q.useMemo)(()=>r.reduce((e,t)=>e+(t.taxReducedLocalAmount?.raw??0),0),[r]),a=(0,q.useMemo)(()=>r.reduce((e,t)=>e+(t.roundedLocalVatAfterDeduction?.raw??0),0),[r]),o=(0,q.useMemo)(()=>r.filter(e=>(e.roundedLocalVatAfterDeduction?.raw??0)===0).reduce((e,t)=>e+(t.taxReducedLocalAmount?.raw??0),0),[r]),s=(0,q.useMemo)(()=>n.filter(e=>e.isProperty).reduce((e,t)=>e+(t.taxReducedLocalAmount?.raw??0),0),[n]),c=(0,q.useMemo)(()=>a-n.reduce((e,t)=>e+(t.roundedLocalVatAfterDeduction?.raw??0),0),[a,n]);return(0,J.jsxs)(R,{className:`p-6`,children:[(0,J.jsx)(`h2`,{className:`text-lg font-semibold mb-4`,children:`Report Summary`}),(0,J.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2 lg:grid-cols-3`,children:[(0,J.jsxs)(`div`,{className:`space-y-1`,children:[(0,J.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Taxable Sales Total`}),(0,J.jsx)(`p`,{className:`text-2xl font-bold`,children:d(i,z.Ils)})]}),(0,J.jsxs)(`div`,{className:`space-y-1`,children:[(0,J.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Taxable Sales VAT`}),(0,J.jsx)(`p`,{className:`text-2xl font-bold`,children:d(a,z.Ils)})]}),(0,J.jsxs)(`div`,{className:`space-y-1`,children:[(0,J.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Zero / Exempt Sales`}),(0,J.jsx)(`p`,{className:`text-2xl font-bold`,children:d(o,z.Ils)})]}),(0,J.jsxs)(`div`,{className:`space-y-1`,children:[(0,J.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Equipment Inputs`}),(0,J.jsx)(`p`,{className:`text-2xl font-bold`,children:d(s,z.Ils)})]}),(0,J.jsxs)(`div`,{className:`space-y-1`,children:[(0,J.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Total VAT Amount`}),(0,J.jsx)(`p`,{className:`text-2xl font-bold`,children:d(c,z.Ils)})]})]})]})},Ne=e(ce(),1);function Pe({filter:e,setFilter:t,closeModal:n}){let{control:r,handleSubmit:i,setValue:a}=se({defaultValues:{...e}}),{selectableAdminBusinesses:o,fetching:s}=ne(),c=e=>{t(e),n()};function l(){t(),n()}function u(e){let t=new Date(e.getFullYear(),e.getMonth(),15);a(`monthDate`,D(t,`yyyy-MM-dd`))}return(0,J.jsxs)(J.Fragment,{children:[s?(0,J.jsx)(`div`,{children:`Loading...`}):(0,J.jsx)(`div`,{}),(0,J.jsxs)(`form`,{onSubmit:i(c),children:[(0,J.jsx)(E,{name:`financialEntityId`,control:r,defaultValue:void 0,render:({field:e,fieldState:t})=>(0,J.jsx)(h,{...e,data:o,value:e.value,disabled:s,label:`Report Issuer (Admin Business)`,placeholder:`Scroll to see all options`,maxDropdownHeight:160,searchable:!0,error:t.error?.message})}),(0,J.jsx)(E,{name:`chargesType`,control:r,defaultValue:e.chargesType,render:({field:e,fieldState:t})=>(0,J.jsx)(h,{...e,data:be,value:e.value??U.All,label:`Charge Type`,placeholder:`Filter income/expense`,maxDropdownHeight:160,error:t.error?.message})}),(0,J.jsx)(ee,{defaultValue:e?.monthDate?new Date(e.monthDate):new Date,defaultDate:e?.monthDate?new Date(e.monthDate):new Date,onChange:u,popoverProps:{withinPortal:!0}}),(0,J.jsxs)(`div`,{className:`flex justify-center mt-5 gap-3`,children:[(0,J.jsx)(`button`,{type:`submit`,className:`text-white bg-indigo-500 border-0 py-2 px-8 focus:outline-hidden hover:bg-indigo-600 rounded-sm text-lg`,children:`Filter`}),(0,J.jsx)(`button`,{type:`button`,className:`text-white bg-orange-500 border-0 py-2 px-8 focus:outline-hidden hover:bg-orange-600 rounded-sm text-lg`,onClick:l,children:`Clear`}),(0,J.jsx)(`button`,{type:`button`,className:`text-white bg-rose-500 border-0 py-2 px-8 focus:outline-hidden hover:bg-rose-600 rounded-sm text-lg`,onClick:n,children:`Cancel`})]})]})]})}function Fe({filter:e,setFilter:t}){let[n,r]=(0,q.useState)(!1),{get:a,set:o}=K(),{userContext:s}=(0,q.useContext)(oe);function c(n){n||={financialEntityId:s?.context.adminBusinessId??e.financialEntityId,monthDate:D(new Date,`yyyy-MM-15`)},(0,Ne.default)(n,e)||t(n)}return(0,q.useEffect)(()=>{let t=i(e??{});t!==a(`vatMonthlyReportFilters`)&&o(`vatMonthlyReportFilters`,t)},[e,a,o]),(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(re,{opened:n,onClose:()=>r(!1),content:(0,J.jsx)(Pe,{filter:e,setFilter:c,closeModal:()=>r(!1)})}),(0,J.jsx)(T,{variant:`outline`,size:`icon`,className:`size-7.5`,onClick:()=>r(!0),children:(0,J.jsx)(ae,{className:`size-5`})})]})}var Ie=W(me),Le=()=>{let{get:e}=K(),{setFiltersContext:t}=(0,q.useContext)(ie),{userContext:n}=(0,q.useContext)(oe),[r,i]=(0,q.useState)(e(`vatMonthlyReportFilters`)?JSON.parse(decodeURIComponent(e(`vatMonthlyReportFilters`))):{financialEntityId:n?.context.adminBusinessId??``,monthDate:D(new Date,`yyyy-MM-15`)}),[a,o]=(0,q.useState)({});(0,q.useEffect)(()=>{(!r.financialEntityId||r.financialEntityId===``)&&n?.context.adminBusinessId&&i({...r,financialEntityId:n.context.adminBusinessId})},[r,n?.context.adminBusinessId]);let[{data:s,fetching:l}]=B({query:Ie,variables:{filters:r},pause:r.financialEntityId===``}),u=(0,q.useMemo)(()=>Object.entries(a).flatMap(([e,t])=>t?[e]:[]),[a]),d=(0,q.useMemo)(()=>new Set(u),[u]),f=(0,q.useCallback)(e=>{o(t=>{let n={...t};return n[e]?delete n[e]:n[e]=!0,n})},[]),p=(0,q.useCallback)(()=>{o({})},[]);return(0,q.useEffect)(()=>{t((0,J.jsxs)(`div`,{className:`flex flex-row gap-2`,children:[(0,J.jsx)(je,{filter:r,isLoading:l}),(0,J.jsx)(Fe,{filter:{...r},setFilter:i}),(0,J.jsx)(v,{selected:u.map(e=>({id:e,onChange:()=>{}})),resetMergeList:p})]}))},[r,l,t,i,u,p]),(0,J.jsx)(ye,{title:`VAT Monthly Report${r.monthDate?`, ${D(new Date(r.monthDate),`MMMM yyyy`)}`:``}`,children:l?(0,J.jsx)(c,{className:`h-10 w-10 animate-spin mr-2 self-center`}):(0,J.jsx)(`div`,{className:`min-h-screen`,children:(0,J.jsxs)(`div`,{className:`space-y-4`,children:[r.financialEntityId&&r.monthDate&&(0,J.jsx)(Me,{data:s?.vatReport}),r.chargesType!==U.Expense&&(0,J.jsx)(Oe,{data:s?.vatReport,toggleMergeCharge:f,mergeSelectedCharges:d}),r.chargesType!==U.Income&&(0,J.jsx)(De,{data:s?.vatReport,toggleMergeCharge:f,mergeSelectedCharges:d}),(0,J.jsx)(Ae,{data:s?.vatReport,rowSelection:a,onRowSelectionChange:o}),(0,J.jsx)(Ce,{data:s?.vatReport,rowSelection:a,onRowSelectionChange:o}),(0,J.jsx)(ke,{data:s?.vatReport,rowSelection:a,onRowSelectionChange:o})]})})})};export{Le as VatMonthlyReport};