2 lines
4.1 KiB
JavaScript
2 lines
4.1 KiB
JavaScript
import{bP as j,d as x,e7 as I,u as T,p as o,a8 as z,e5 as H,bc as b,r as M,e as O,$ as Q,e6 as q,j as v,C as D,c as s,bt as u,ck as f,I as J,b$ as g,az as w,cl as L,J as U,e2 as X,by as $,G as K}from"./bundle.40842d53.js";import{b as W}from"./bundle.461c2575.js";function ee(){var y;const{id:C}=j(),{data:e}=W({id:C}),F=x(),{data:h}=I({id:e==null?void 0:e.company_gateway_id,queryParams:"include=gateway",enabled:!!(e!=null&&e.company_gateway_id)}),[d]=T(),[n,S]=o.useState(),[r,p]=o.useState([]),[m,k]=o.useState(!1),[G,N]=o.useState(!1),[_,E]=o.useState(!1),V=z(),t=H({enableReinitialize:!0,initialValues:{id:e==null?void 0:e.id,date:e==null?void 0:e.date,invoices:[]},onSubmit:a=>{b.processing(),S(void 0);let i="/api/v1/payments/refund?&email_receipt=:email";_&&(i+="&gateway_refund=true"),M("POST",O(i,{email:m}),a).then(()=>{b.success("refunded_payment"),V("/payments")}).catch(l=>{var c;((c=l.response)==null?void 0:c.status)===422&&(S(l.response.data),b.dismiss())}).finally(()=>{t.setSubmitting(!1),Q(["payments"])})}}),A=a=>{const i=e==null?void 0:e.paymentables.find(({invoice_id:l})=>l===a.id);return i?i.amount-i.refunded:0},P=a=>{var l,c;const i=e==null?void 0:e.paymentables.find(({invoice_id:B})=>B===a.id);return i?`${d("invoice")} #${a.number} - ${d("refundable")} (${F(i.amount-i.refunded,(l=e==null?void 0:e.client)==null?void 0:l.country_id,(c=e==null?void 0:e.client)==null?void 0:c.settings.currency_id)})`:""};o.useEffect(()=>{e&&Array.isArray(e.invoices)&&r.map(a=>{const i=e.invoices.find(l=>l.id==a);i&&t.setFieldValue("invoices",[...t.values.invoices,{amount:A(i),invoice_id:i==null?void 0:i.id,id:""}])})},[r]),o.useEffect(()=>{let a=0;t.values.invoices.map(i=>{a=a+Number(i.amount),p(r.filter(l=>l!=i.invoice_id))})},[t.values.invoices]),o.useEffect(()=>{if(h){const a=h.data.data.gateway,i=Object.values(a.options).some(l=>l.refund);N(i)}},[h]);const R=()=>{var i;const a=K(t==null?void 0:t.values.invoices).pluck("invoice_id");return(i=e==null?void 0:e.invoices)==null?void 0:i.filter(l=>!a.contains(l.id))};return q({onClick:()=>t.handleSubmit(),disableSaveButton:t.isSubmitting||!t.values.invoices.length},[t.values,t.isSubmitting]),v(D,{title:d("refund_payment"),children:[s(u,{leftSide:d("number"),children:s(f,{disabled:!0,value:e==null?void 0:e.number})}),e&&s(u,{leftSide:d("amount"),children:s(f,{disabled:!0,value:(e==null?void 0:e.amount)-(e==null?void 0:e.refunded)})}),s(u,{leftSide:d("applied"),children:s(f,{disabled:!0,value:e==null?void 0:e.applied})}),s(u,{leftSide:d("date"),children:s(f,{type:"date",value:t.values.date,onValueChange:a=>t.setFieldValue("date",a)})}),v(u,{leftSide:d("invoices"),children:[s(J,{onChange:a=>{t.values.invoices.filter(i=>i.invoice_id==a.target.value).length<1&&p([...r,a.target.value]),a.target.value=""},withBlank:!0,children:(y=R())==null?void 0:y.map((a,i)=>s("option",{value:a.id,children:P(a)},i))}),(n==null?void 0:n.errors.invoices)&&s("div",{className:"py-2",children:s(g,{type:"danger",children:n.errors.invoices})})]}),s(w,{}),e&&Array.isArray(e.invoices)&&t.values.invoices.map((a,i)=>{const l=e.invoices.find(c=>c.id==a.invoice_id);if(l)return v("div",{className:"flex flex-col",children:[s(u,{leftSide:`${d("invoice")}: ${l==null?void 0:l.number}`,children:v("div",{className:"flex items-center space-x-2",children:[s(L,{value:t.values.invoices[i].amount||"",onValueChange:c=>t.setFieldValue(`invoices.${i}.amount`,parseFloat(c))}),s(U,{behavior:"button",type:"minimal",onClick:()=>{t.setFieldValue("invoices",t.values.invoices.filter(c=>c.invoice_id!=a.invoice_id))},children:s(X,{})})]})}),((n==null?void 0:n.errors[`invoices.${[i]}.invoice_id`])||(n==null?void 0:n.errors[`invoices.${[i]}.amount`]))&&s("div",{className:"px-6",children:s(g,{className:"mt-2 break-all",type:"danger",children:(n==null?void 0:n.errors[`invoices.${[i]}.invoice_id`])||(n==null?void 0:n.errors[`invoices.${[i]}.amount`])})})]},i)}),s(w,{}),s(u,{leftSide:d("send_email"),leftSideHelp:d("email_receipt"),children:s($,{checked:m,onChange:()=>{k(!m)}})}),G&&s(u,{leftSide:d("gateway_refund"),leftSideHelp:d("gateway_refund_help"),children:s($,{checked:_,onChange:a=>E(a)})}),(n==null?void 0:n.errors.id)&&s(g,{type:"danger",children:n.errors.id})]})}export{ee as default};
|