@accounter/client
Version:
Accounter client application
1 lines • 4.87 kB
JavaScript
import{s as e}from"./dist-ypP48_Ax.js";import{i as t,o as n}from"./utils-CbS-oR5I.js";import{t as r}from"./chunk-62JRHF6Z-CBbOZODe.js";import{U as i,h as a,vt as o}from"./common-CXB0UgWw.js";import{a as s,c,f as l,i as u,l as d,lt as f,m as p,n as m,o as h,p as g,r as _,t as v,ut as y}from"./select-DrAHsHyM.js";import{c as b}from"./separator-CQBUMn7G.js";import{t as x}from"./routes-4W-duEv9.js";import{t as S}from"./button-DUNsVBiu.js";import{Fl as C,Il as w,Kl as T,Rl as E,Vc as D,Xc as O,Zc as k,a as A,el as j,i as M,il as N,n as P,o as F,r as I,t as L}from"./table-Dje35oxp.js";import{A as R,Fi as z,Oi as B,at as V,ki as H,us as U}from"./graphql-BIob9ctl.js";import{t as W}from"./subMonths-D3tEnDXZ.js";import{r as G,t as K}from"./use-issue-monthly-documents-DmDm2el8.js";var q=e(n(),1),J=t();function Y({issueMonth:e,clients:t,onAdd:n}){let[r,i]=(0,q.useState)(!1),[o,f]=(0,q.useState)(``),[{data:h},b]=U({query:B,variables:{issueMonth:e,clientId:o},pause:!r}),x=(0,q.useCallback)(e=>{f(e),b()},[b,f]);return(0,q.useEffect)(()=>{o!==``&&h&&(n(a(j(z,h.clientMonthlyChargeDraft))),i(!1))},[o,h,n]),(0,J.jsxs)(c,{open:r,onOpenChange:i,children:[(0,J.jsx)(p,{asChild:!0,children:(0,J.jsx)(S,{variant:`outline`,size:`icon`,children:(0,J.jsx)(y,{})})}),(0,J.jsxs)(d,{className:`w-[400px] max-w-screen-md`,children:[(0,J.jsx)(l,{children:(0,J.jsx)(g,{children:`Select document recipient`})}),(0,J.jsxs)(v,{onValueChange:x,children:[(0,J.jsx)(u,{children:(0,J.jsx)(s,{placeholder:`Recipient`})}),(0,J.jsx)(m,{children:t.map(e=>(0,J.jsx)(_,{value:e.id,children:e.name},e.id))})]})]})]})}var X=({drafts:e})=>{let[t,n]=(0,q.useState)(e.map(e=>a(j(z,e)))),s=T(W(new Date,1),`yyyy-MM-dd`),[c,l]=(0,q.useState)(s),[{data:u},d]=U({query:H,variables:{issueMonth:c},pause:!0});(0,q.useEffect)(()=>{u?.periodicalDocumentDrafts&&n(u.periodicalDocumentDrafts.map(e=>a(j(z,e))))},[u,n]),(0,q.useEffect)(()=>{d()},[c,d]);let p=k({values:{generateDocumentsInfo:t}}),{issueDocuments:m}=K(),[{data:g}]=U({query:R}),{fields:_,append:v,remove:y,update:b}=O({control:p.control,name:`generateDocumentsInfo`}),N=p.watch(`generateDocumentsInfo`),B=(0,q.useMemo)(()=>_.map((e,t)=>({...e,...N[t],id:e.client?.id})),[_,N]),X=(0,q.useCallback)(e=>{m(e)},[m]),Z=(0,q.useMemo)(()=>g?.allOpenContracts.filter(e=>e.billingCycle===V.Monthly&&!B.some(t=>t.client?.id===e.client.id)),[B,g]);return(0,J.jsx)(`div`,{className:`p-2`,children:(0,J.jsx)(D,{...p,children:(0,J.jsxs)(`form`,{onSubmit:p.handleSubmit(X),children:[(0,J.jsxs)(`div`,{className:`flex gap-2 items-center mb-4`,children:[(0,J.jsx)(h,{children:`Issue Month:`}),(0,J.jsx)(o,{value:new Date(c),onChange:e=>{let t=new Date(e.getFullYear(),e.getMonth(),15);l(T(t,`yyyy-MM-dd`))},popoverProps:{withinPortal:!0}})]}),(0,J.jsxs)(L,{children:[(0,J.jsx)(A,{children:(0,J.jsxs)(F,{children:[(0,J.jsx)(M,{children:`Name`}),(0,J.jsx)(M,{children:`Document`}),(0,J.jsx)(M,{children:`Amount`}),(0,J.jsx)(M,{children:`Remark`}),(0,J.jsx)(M,{children:`Recipients`}),(0,J.jsx)(M,{})]})}),(0,J.jsx)(P,{children:B.map(({id:e,...t},n)=>(0,J.jsxs)(F,{children:[(0,J.jsx)(I,{children:(0,J.jsx)(r,{to:e?x.BUSINESSES.DETAIL(e):x.BUSINESSES.ALL,target:`_blank`,rel:`noreferrer`,onClick:e=>e.stopPropagation(),className:`inline-flex items-center font-semibold`,children:t.client?.name})}),(0,J.jsx)(I,{children:t.type}),(0,J.jsxs)(I,{children:[t.income?.[0]?.price,` `,t.income?.[0]?.currency]}),(0,J.jsx)(I,{children:(0,J.jsx)(`span`,{className:`text-sm text-gray-500 whitespace-normal max-w-50`,children:t.remarks})}),(0,J.jsx)(I,{children:(0,J.jsx)(`div`,{className:`flex flex-col`,children:t.client?.emails?.map(e=>(0,J.jsx)(`span`,{className:`text-sm text-gray-500`,children:e},e))})}),(0,J.jsx)(I,{children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,J.jsxs)(C,{children:[(0,J.jsx)(E,{asChild:!0,type:`button`,children:(0,J.jsx)(S,{className:`size-7.5`,variant:`secondary`,onClick:()=>y(n),children:(0,J.jsx)(f,{size:16})})}),(0,J.jsx)(w,{children:(0,J.jsx)(`p`,{children:`Remove document`})})]}),(0,J.jsx)(G,{draft:t,onApprove:e=>{p.setValue(`generateDocumentsInfo.${n}`,e,{shouldDirty:!0,shouldTouch:!0,shouldValidate:!0}),b(n,{...e})}})]})})]},e))})]}),(0,J.jsxs)(`div`,{className:`flex justify-between items-center mt-4`,children:[(0,J.jsx)(Y,{clients:Z?.map(e=>({id:e.client.originalBusiness.id,name:e.client.originalBusiness.name}))??[],onAdd:v,issueMonth:c}),(0,J.jsx)(i,{onConfirm:p.handleSubmit(X),title:`Are you sure you want to issue ${B.length} documents?`,children:(0,J.jsx)(S,{children:`Issue`})})]})]})})})},Z=()=>{let{setFiltersContext:e}=(0,q.useContext)(b),[{data:t,fetching:n}]=U({query:H,variables:{issueMonth:T(W(new Date,1),`yyyy-MM-dd`)}});return(0,q.useEffect)(()=>{t?.periodicalDocumentDrafts||e(null)},[t,e]),n?(0,J.jsx)(N,{}):(0,J.jsx)(X,{drafts:t?.periodicalDocumentDrafts??[]})};export{Z as IssueDocuments};