Files
docker-invoiceninja/docker/app/public/bundle.8a5799e9.js
2024-10-19 18:17:42 +00:00

10 lines
4.2 KiB
JavaScript

import{a8 as L,bJ as U,bL as M,bK as q,a9 as J,bc as p,r as K,e as Q,a7 as $,h as W,bM as z,u as G,O as V,_ as E,cb as X,cc as Y,x as Z,p as f,bb as j,j as k,H as N,c as v,T as ee,bS as te,bT as se,S as ae,aU as ne,bW as ie}from"./bundle.0b839d67.js";import{b as oe}from"./bundle.ca06b7b6.js";import{u as re}from"./bundle.8f503117.js";import{A as ce}from"./bundle.487f7407.js";/**
* Invoice Ninja (https://invoiceninja.com).
*
* @link https://github.com/invoiceninja/invoiceninja source repository
*
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://invoiceninja.com)
*
* @license https://www.elastic.co/licensing/elastic-license
*/function ue(r){const x=L(),[s]=U(),{setErrors:c,isDefaultTerms:d,isDefaultFooter:m}=r,h=M(),a=q(),b=J(z);return async S=>{p.processing(),c(void 0),await a(!0);let t="/api/v1/invoices?";d?(t+="save_default_terms=true",m&&(t+="&save_default_footer=true")):m&&(t+="save_default_footer=true"),K("POST",Q(t),S).then(async l=>{(d||m)&&await h(),p.success("created_invoice"),$(["products","tasks"]),s.get("action")==="invoice_expense"&&$(["expenses"]),x(W("/invoices/:id/edit?table=:table",{id:l.data.data.id,table:s.get("table")??"products"}))}).catch(l=>{var g;if(((g=l.response)==null?void 0:g.status)===422){const _=l.response.data;_.errors.amount?p.error(_.errors.amount[0]):p.dismiss(),c(_)}}).finally(()=>b(void 0))}}function ve(){const{t:r}=G(),{documentTitle:x}=V("new_invoice"),[s,c]=E(ne),{data:d,isLoading:m}=X({enabled:typeof s>"u"}),h=Y(),a=Z(),[b,S]=E(ie),[t]=U(),[l,g]=f.useState(),[_,w]=f.useState(),[T,F]=f.useState(!1),[D,P]=f.useState(!1),R=[{name:r("invoices"),href:"/invoices"},{name:r("new_invoice"),href:"/invoices/create"}],B=[{name:r("create"),href:"/invoices/create"},{name:r("documents"),href:"/invoices/create/documents"},{name:r("settings"),href:"/invoices/create/settings"}],{handleChange:u,calculateInvoiceSum:H}=re({client:_}),O=ue({setErrors:g,isDefaultTerms:T,isDefaultFooter:D});f.useEffect(()=>(S(void 0),c(e=>{var o;let i=e;if(t.get("action")!=="clone"&&t.get("action")!=="invoice_project"&&t.get("action")!=="invoice_task"&&t.get("action")!=="invoice_expense"&&t.get("action")!=="invoice_product"&&(i=void 0),typeof d<"u"&&typeof i>"u"&&t.get("action")!=="clone"){const n=j.cloneDeep(d);typeof n.line_items=="string"&&(n.line_items=[]),t.get("client")&&(n.client_id=t.get("client")),n.uses_inclusive_taxes=((o=a==null?void 0:a.settings)==null?void 0:o.inclusive_taxes)??!1,i=n}return i}),()=>{t.get("action")!=="clone"&&t.get("action")!=="invoice_project"&&t.get("action")!=="invoice_task"&&t.get("action")!=="invoice_expense"&&t.get("action")!=="invoice_product"&&c(void 0)}),[d]);const C=(e,i)=>{var o,n,y,I,A;return(o=e==null?void 0:e.settings)!=null&&o[`tax_name${i}`]?{name:e.settings[`tax_name${i}`],rate:e.settings[`tax_rate${i}`]}:(y=(n=e==null?void 0:e.group_settings)==null?void 0:n.settings)!=null&&y[`tax_name${i}`]?{name:(I=e==null?void 0:e.group_settings)==null?void 0:I.settings[`tax_name${i}`],rate:(A=e==null?void 0:e.group_settings)==null?void 0:A.settings[`tax_rate${i}`]}:{name:a==null?void 0:a.settings[`tax_name${i}`],rate:a==null?void 0:a.settings[`tax_rate${i}`]}};return f.useEffect(()=>{s&&s.client_id.length>1&&h.find(s.client_id).then(e=>{w(e);const i=[];if(e.contacts.map(o=>{if(o.send_email){const n=j.cloneDeep(oe);n.client_contact_id=o.id,i.push(n)}}),u("invitations",i),!e.is_tax_exempt){if(a&&a.enabled_tax_rates>0&&t.get("action")!=="clone"){const{name:o,rate:n}=C(e,"1");u("tax_name1",o),u("tax_rate1",n)}if(a&&a.enabled_tax_rates>1&&t.get("action")!=="clone"){const{name:o,rate:n}=C(e,"2");u("tax_name2",o),u("tax_rate2",n)}if(a&&a.enabled_tax_rates>2&&t.get("action")!=="clone"){const{name:o,rate:n}=C(e,"3");u("tax_name3",o),u("tax_rate3",n)}}})},[s==null?void 0:s.client_id]),f.useEffect(()=>{s&&H(s)},[s]),k(N,{children:[v(ee,{title:x,breadcrumbs:R,onSaveClick:()=>O(s),disableSaveButton:(s==null?void 0:s.client_id.length)===0,children:m?v("div",{className:"flex justify-center items-center",children:v(ae,{})}):k("div",{className:"space-y-4",children:[v(te,{tabs:B}),v(se,{context:{invoice:s,setInvoice:c,errors:l,isDefaultTerms:T,setIsDefaultTerms:F,isDefaultFooter:D,setIsDefaultFooter:P,client:_,invoiceSum:b}})]})}),v(ce,{invoice:s,setInvoice:c})]})}export{ve as default};