@accounter/client
Version:
Accounter client application
1 lines • 4.57 kB
JavaScript
import{t as e}from"./subMonths-BtKDgKW-.js";import{An as t,B as n,Cd as r,Cn as i,Dn as a,En as o,F as s,Fu as c,G as l,H as u,Kl as d,Li as f,Ml as p,Nd as m,Ni as h,On as g,Pi as _,Pl as v,Pt as y,Rd as b,Ri as x,Si as S,Tu as C,U as w,V as T,W as E,Wa as D,Xn as O,ac as k,bi as A,er as j,fn as M,ji as N,kn as P,ku as F,nc as I,nr as L,qu as R,tc as z,un as B,wa as V,wn as H,yi as U,zi as W}from"./index-BdWApCqi.js";import{r as G,t as K}from"./use-issue-monthly-documents-DtAdlWFG.js";var q=b(m(),1),J=C();function Y({issueMonth:e,clients:n,onAdd:r}){let[i,c]=(0,q.useState)(!1),[l,u]=(0,q.useState)(``),[{data:m},v]=p({query:z,variables:{issueMonth:e,clientId:l},pause:!i}),y=(0,q.useCallback)(e=>{u(e),v()},[v,u]);return(0,q.useEffect)(()=>{l!==``&&m&&(r(s(O(k,m.clientMonthlyChargeDraft))),c(!1))},[l,m,r]),(0,J.jsxs)(h,{open:i,onOpenChange:c,children:[(0,J.jsx)(W,{asChild:!0,children:(0,J.jsx)(d,{variant:`outline`,size:`icon`,children:(0,J.jsx)(R,{})})}),(0,J.jsxs)(_,{className:`w-[400px] max-w-screen-md`,children:[(0,J.jsx)(f,{children:(0,J.jsx)(x,{children:`Select document recipient`})}),(0,J.jsxs)(o,{onValueChange:y,children:[(0,J.jsx)(P,{children:(0,J.jsx)(t,{placeholder:`Recipient`})}),(0,J.jsx)(a,{children:n.map(e=>(0,J.jsx)(g,{value:e.id,children:e.name},e.id))})]})]})]})}var X=({drafts:t})=>{let[a,o]=(0,q.useState)(t.map(e=>s(O(k,e)))),[f,m]=(0,q.useState)(v(e(new Date,1),`yyyy-MM-dd`)),[{data:h},g]=p({query:I,variables:{issueMonth:f},pause:!0});(0,q.useEffect)(()=>{h?.periodicalDocumentDrafts&&o(h.periodicalDocumentDrafts.map(e=>s(O(k,e))))},[h,o]),(0,q.useEffect)(()=>{g()},[f,g]);let _=H({values:{generateDocumentsInfo:a}}),{issueDocuments:b}=K(),[{data:x}]=p({query:V}),{fields:C,append:j,remove:P,update:L}=i({control:_.control,name:`generateDocumentsInfo`}),R=_.watch(`generateDocumentsInfo`),z=(0,q.useMemo)(()=>C.map((e,t)=>({...e,...R[t],id:e.client?.id})),[C,R]),W=(0,q.useCallback)(e=>{b(e)},[b]),X=(0,q.useMemo)(()=>x?.allOpenContracts.filter(e=>e.billingCycle===D.Monthly&&!z.some(t=>t.client?.id===e.client.id)),[z,x]);return(0,J.jsx)(`div`,{className:`p-2`,children:(0,J.jsx)(M,{..._,children:(0,J.jsxs)(`form`,{onSubmit:_.handleSubmit(W),children:[(0,J.jsxs)(`div`,{className:`flex gap-2 items-center mb-4`,children:[(0,J.jsx)(N,{children:`Issue Month:`}),(0,J.jsx)(B,{value:new Date(f),onChange:e=>{m(v(new Date(e.getFullYear(),e.getMonth(),15),`yyyy-MM-dd`))},popoverProps:{withinPortal:!0}})]}),(0,J.jsxs)(n,{children:[(0,J.jsx)(E,{children:(0,J.jsxs)(l,{children:[(0,J.jsx)(w,{children:`Name`}),(0,J.jsx)(w,{children:`Document`}),(0,J.jsx)(w,{children:`Amount`}),(0,J.jsx)(w,{children:`Remark`}),(0,J.jsx)(w,{children:`Recipients`}),(0,J.jsx)(w,{})]})}),(0,J.jsx)(T,{children:z.map(({id:e,...t},n)=>(0,J.jsxs)(l,{children:[(0,J.jsx)(u,{children:(0,J.jsx)(r,{to:e?F.BUSINESSES.DETAIL(e):F.BUSINESSES.ALL,target:`_blank`,rel:`noreferrer`,onClick:e=>e.stopPropagation(),className:`inline-flex items-center font-semibold`,children:t.client?.name})}),(0,J.jsx)(u,{children:t.type}),(0,J.jsxs)(u,{children:[t.income?.[0]?.price,` `,t.income?.[0]?.currency]}),(0,J.jsx)(u,{children:(0,J.jsx)(`span`,{className:`text-sm text-gray-500 whitespace-normal max-w-50`,children:t.remarks})}),(0,J.jsx)(u,{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)(u,{children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,J.jsxs)(U,{children:[(0,J.jsx)(S,{asChild:!0,type:`button`,children:(0,J.jsx)(d,{className:`size-7.5`,variant:`secondary`,onClick:()=>P(n),children:(0,J.jsx)(c,{size:16})})}),(0,J.jsx)(A,{children:(0,J.jsx)(`p`,{children:`Remove document`})})]}),(0,J.jsx)(G,{draft:t,onApprove:e=>{_.setValue(`generateDocumentsInfo.${n}`,e,{shouldDirty:!0,shouldTouch:!0,shouldValidate:!0}),L(n,{...e})}})]})})]},e))})]}),(0,J.jsxs)(`div`,{className:`flex justify-between items-center mt-4`,children:[(0,J.jsx)(Y,{clients:X?.map(e=>({id:e.client.originalBusiness.id,name:e.client.originalBusiness.name}))??[],onAdd:j,issueMonth:f}),(0,J.jsx)(y,{onConfirm:_.handleSubmit(W),title:`Are you sure you want to issue ${z.length} documents?`,children:(0,J.jsx)(d,{children:`Issue`})})]})]})})})},Z=()=>{let{setFiltersContext:t}=(0,q.useContext)(j),[{data:n,fetching:r}]=p({query:I,variables:{issueMonth:v(e(new Date,1),`yyyy-MM-dd`)}});return(0,q.useEffect)(()=>{n?.periodicalDocumentDrafts||t(null)},[n,t]),r?(0,J.jsx)(L,{}):(0,J.jsx)(X,{drafts:n?.periodicalDocumentDrafts??[]})};export{Z as IssueDocuments};