ruạṛ
import{bJ as N,bK as G,bL as V,ae as X,bc as g,r as B,e as I,$ as k,bM as Y,u as w,x as Q,a1 as U,bp as O,bN as j,h as v,j as p,c,bO as Z,bq as ee,p as d,bb as F,T as te,a2 as se,a3 as ie,bh as ne,V as ae,H as oe,W as ce,bt as re,bP as de,bQ as le,bR as ue,S as me,i as fe,w as ve,aU as he,bS as ye}from"./bundle.9abe88c8.js";import{u as pe}from"./Actions-d2496d38.js";import{C as be}from"./CommonActions-323e4db3.js";import{I as ge}from"./invoice-status-756326ba.js";import{u as _e}from"./useInvoiceUtilities-400c192c.js";import{A as Ee}from"./AddUninvoicedItemsButton-0680723b.js";import{P as Se}from"./PreviousNextNavigation-f6f14b66.js";import"./hooks-10493af2.js";import"./CreditStatus-ef9aafcc.js";import"./useInvoiceColumns-4c12a1a8.js";import"./InvoiceStatus-e46861b3.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 Ae(h){const{setErrors:t,isDefaultTerms:i,isDefaultFooter:n}=h,[a]=N(),o=G(),u=V(),s=X(Y);return async f=>{t(void 0),g.processing(),await o(!0);let e="/api/v1/invoices/:id?";i?(e+="save_default_terms=true",n&&(e+="&save_default_footer=true")):n&&(e+="save_default_footer=true"),B("PUT",I(e,{id:f.id}),f).then(async()=>{(i||n)&&await u(),g.success("updated_invoice"),k(["products","invoices"]),a.get("action")==="add_tasks"&&k(["tasks"])}).catch(r=>{var l;if(((l=r.response)==null?void 0:l.status)===422){const y=r.response.data;y.errors.amount?g.error(y.errors.amount[0]):g.dismiss(),t(y)}}).finally(()=>s(void 0))}}function Ce(h){var r;const[t]=w(),i=Q(),n=U(),a=O(),{id:o}=j(),{invoice:u,eInvoiceValidationResponse:s}=h,f=n("view_invoice")||n("edit_invoice")||a(u);return[{name:t("edit"),href:v("/invoices/:id/edit",{id:o})},{name:t("e_invoice"),href:v("/invoices/:id/e_invoice",{id:o}),enabled:!!((i==null?void 0:i.settings.e_invoice_type)==="PEPPOL"&&(i!=null&&i.settings.enable_e_invoice)&&((r=i==null?void 0:i.tax_data)!=null&&r.acts_as_sender)),formatName:()=>p("div",{className:"flex space-x-1",children:[c("span",{children:t("e_invoice")}),!!(s!=null&&s.client.length||s!=null&&s.company.length||s!=null&&s.invoice.length)&&p("span",{className:"font-bold",children:["(",((s==null?void 0:s.client.length)||0)+((s==null?void 0:s.company.length)||0)+((s==null?void 0:s.invoice.length)||0),")"]})]})},{name:t("documents"),href:v("/invoices/:id/documents",{id:o}),enabled:f,formatName:()=>{var l;return c(Z,{numberOfDocuments:(l=u==null?void 0:u.documents)==null?void 0:l.length})}},{name:t("settings"),href:v("/invoices/:id/settings",{id:o})},{name:t("activity"),href:v("/invoices/:id/activity",{id:o})},{name:t("history"),href:v("/invoices/:id/history",{id:o})},{name:t("email_history"),href:v("/invoices/:id/email_history",{id:o})}]}/** * 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 Pe(h){const{resource:t,enableQuery:i,onFinished:n}=h,a=!0,o=ee(),[u,s]=d.useState(),f=async()=>{const e=await o.fetchQuery(["/api/v1/einvoice/validateEntity",t==null?void 0:t.id],()=>B("POST",I("/api/v1/einvoice/validateEntity"),{entity:"invoices",entity_id:t==null?void 0:t.id}).then(l=>l).catch(l=>l.response),{staleTime:1/0});let r={client:[],company:[],invoice:[],passes:!0};(e==null?void 0:e.status)===422&&(r={company:e.data.company??[],client:e.data.client??[],invoice:e.data.invoice??[],passes:!1}),s(F.cloneDeep(r)),n==null||n()};return d.useEffect(()=>{i&&t&&a&&f()},[i,t]),{validationResponse:u}}fe.extend(ve);function je(){var T;const{documentTitle:h}=te("edit_invoice"),[t]=w(),i=d.useRef(null),{id:n}=j(),a=Q(),[o]=N(),u=U(),s=O(),f=pe(),[e,r]=se(he),[l,y]=d.useState(!0),{validationResponse:_}=Pe({resource:e,enableQuery:(a==null?void 0:a.settings.e_invoice_type)==="PEPPOL"&&(a==null?void 0:a.settings.enable_e_invoice)&&((T=a==null?void 0:a.tax_data)==null?void 0:T.acts_as_sender)&&l&&n===(e==null?void 0:e.id),onFinished:()=>{y(!1)}}),{data:E}=ie({id:n,includeIsLocked:!0}),[S,L]=d.useState(),{calculateInvoiceSum:H}=_e({client:S}),[q,M]=d.useState(),[A,C]=d.useState(!1),[P,R]=d.useState(!1),[x,W]=d.useState(!1),$=Ae({setErrors:M,isDefaultTerms:P,isDefaultFooter:x}),J=Ce({invoice:e,eInvoiceValidationResponse:_}),K=[{name:t("invoices"),href:"/invoices"},{name:t("edit_invoice"),href:v("/invoices/:id/edit",{id:n})}];return d.useEffect(()=>{const b=o.get("action")&&e?e:E;if(b){const m=F.cloneDeep(b);m.line_items.map(z=>z._id=ne()),r(m),m!=null&&m.client&&L(m.client)}},[E]),d.useEffect(()=>{e&&H(e)},[e]),d.useEffect(()=>{A&&e&&($(e),C(!1))},[A]),ae({on:["App\\Events\\Invoice\\InvoiceWasPaid"],callback:({data:D})=>{var b,m;((b=ye())==null?void 0:b.toString())!==D["x-socket-id"]&&((m=document.getElementById("invoiceUpdateBanner"))==null||m.classList.remove("hidden"))}}),p(oe,{children:[c(ce,{title:h,breadcrumbs:K,...(u("edit_invoice")||s(e))&&e&&{navigationTopRight:c(re,{resource:e,actions:f,onSaveClick:()=>C(!0),disableSaveButton:e&&(e.status_id===ge.Cancelled||e.is_deleted),disableSaveButtonOnly:e.is_locked,cypressRef:"invoiceActionDropdown"})},aboveMainContainer:c(de,{id:"invoiceUpdateBanner",className:"hidden",variant:"orange",children:t("invoice_status_changed")}),afterBreadcrumbs:c(Se,{entity:"invoice"}),children:(e==null?void 0:e.id)===n?p("div",{className:"space-y-2",children:[!!(e!=null&&e.is_locked)&&p("div",{className:"flex items-center justify-center h-10 w-full text-white",style:{backgroundColor:"#4DA6FF"},children:[t("locked_invoice"),"."]}),p("div",{className:"space-y-4",children:[c(le,{tabs:J,rightSide:e&&c("div",{className:"flex items-center",children:c(be,{resource:e,entity:"invoice"})})}),c(ue,{context:{invoice:e,setInvoice:r,errors:q,isDefaultTerms:P,setIsDefaultTerms:R,isDefaultFooter:x,setIsDefaultFooter:W,client:S,eInvoiceRef:i,eInvoiceValidationEntityResponse:_,setTriggerValidationQuery:y}})]})]}):c("div",{className:"flex justify-center items-center",children:c(me,{})})}),c(Ee,{invoice:e,setInvoice:r})]})}export{je as default};
cải xoăn