Files
2024-10-19 18:17:42 +00:00

10 lines
3.6 KiB
JavaScript

import{aw as F,bI as I,bK as N,bJ as O,ax as U,ag as b,r as B,e as H,bs as L,h as Q,bL as $,u as q,O as J,b_ as K,b$ as M,x as W,a2 as z,p as u,br as D,c as g,T as G,j as V,bQ as X,bR as Y,S as Z,ba as ee,bT as te}from"./bundle.js";import{b as se}from"./bundle412.js";import{u as ae}from"./bundle410.js";import{u as ne}from"./bundle411.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 ie(r){const x=F(),[t]=I(),{setErrors:f,isDefaultTerms:d,isDefaultFooter:l}=r,h=N(),s=O(),S=U($);return async y=>{b.processing(),f(void 0),await s(!0);let a="/api/v1/invoices?";d?(a+="save_default_terms=true",l&&(a+="&save_default_footer=true")):l&&(a+="save_default_footer=true"),B("POST",H(a),y).then(async m=>{(d||l)&&await h(),b.success("created_invoice"),L(["products","tasks"]),x(Q("/invoices/:id/edit?table=:table",{id:m.data.data.id,table:t.get("table")??"products"}))}).catch(m=>{var p;if(((p=m.response)==null?void 0:p.status)===422){const v=m.response.data;v.errors.amount?b.error(v.errors.amount[0]):b.dismiss(),f(v)}}).finally(()=>S(void 0))}}function fe(){const{t:r}=q(),{documentTitle:x}=J("new_invoice"),[t,f]=ne(ee),{data:d,isLoading:l}=K({enabled:typeof t>"u"}),h=M(),s=W(),[S,y]=z(te),[a]=I(),[m,p]=u.useState(),[v,A]=u.useState(),[C,E]=u.useState(!1),[T,j]=u.useState(!1),k=[{name:r("invoices"),href:"/invoices"},{name:r("new_invoice"),href:"/invoices/create"}],w=[{name:r("create"),href:"/invoices/create"},{name:r("documents"),href:"/invoices/create/documents"},{name:r("settings"),href:"/invoices/create/settings"}],{handleChange:c,calculateInvoiceSum:P}=ae({client:v}),R=ie({setErrors:p,isDefaultTerms:C,isDefaultFooter:T});u.useEffect(()=>(y(void 0),f(e=>{var o;let n=e;if(a.get("action")!=="clone"&&a.get("action")!=="invoice_project"&&a.get("action")!=="invoice_task"&&a.get("action")!=="invoice_expense"&&a.get("action")!=="invoice_product"&&(n=void 0),typeof d<"u"&&typeof n>"u"&&a.get("action")!=="clone"){const i=D.cloneDeep(d);typeof i.line_items=="string"&&(i.line_items=[]),a.get("client")&&(i.client_id=a.get("client")),i.uses_inclusive_taxes=((o=s==null?void 0:s.settings)==null?void 0:o.inclusive_taxes)??!1,n=i}return n}),()=>{f(void 0)}),[d]);const _=(e,n)=>{var o,i;return e!=null&&e.settings&&(e!=null&&e.settings[n])?e.settings[n]:e!=null&&e.group_settings&&((o=e==null?void 0:e.group_settings)!=null&&o.settings[n])?(i=e==null?void 0:e.group_settings)==null?void 0:i.settings[n]:s==null?void 0:s.settings[n]};return u.useEffect(()=>{t&&t.client_id.length>1&&h.find(t.client_id).then(e=>{A(e);const n=[];e.contacts.map(o=>{if(o.send_email){const i=D.cloneDeep(se);i.client_contact_id=o.id,n.push(i)}}),c("invitations",n),s&&s.enabled_tax_rates>0&&(c("tax_name1",_(e,"tax_name1")),c("tax_rate1",_(e,"tax_rate1"))),s&&s.enabled_tax_rates>1&&(c("tax_name2",_(e,"tax_name2")),c("tax_rate2",_(e,"tax_rate2"))),s&&s.enabled_tax_rates>2&&(c("tax_name3",_(e,"tax_name3")),c("tax_rate3",_(e,"tax_rate3")))})},[t==null?void 0:t.client_id]),u.useEffect(()=>{t&&P(t)},[t]),g(G,{title:x,breadcrumbs:k,onSaveClick:()=>R(t),disableSaveButton:(t==null?void 0:t.client_id.length)===0,children:l?g("div",{className:"flex justify-center items-center",children:g(Z,{})}):V("div",{className:"space-y-4",children:[g(X,{tabs:w}),g(Y,{context:{invoice:t,setInvoice:f,errors:m,isDefaultTerms:C,setIsDefaultTerms:E,isDefaultFooter:T,setIsDefaultFooter:j,client:v,invoiceSum:S}})]})})}export{fe as default};