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