1import{r as T,j as r,p as I,o as L}from"./vendor-react-0b52e17d.js";import{aM as M,aT as B,aQ as V,H as W}from"./vendor-misc-60f9a457.js";import{w as E,ak as q,ag as p,al as k,L as w,ad as H,am as K,ae as z,an as G,ao as Y,af as $,e as X,p as J,u as Z,ac as ee,ap as te,q as s,ah as re,ai as ae,aj as se}from"./app-core-d11f9ebf.js";import{p as oe}from"./use-meters-44d1580c.js";import{g as ie,P as ne,u as ce,C as de,a as me,b as ue,d as pe,c as le,e as Pe}from"./plan-input-form-0e711062.js";import{g as ge,C as fe}from"./is-add-product-d5de001a.js";import{w as Ce}from"./withPrefetch-fe90ea99.js";import{a4 as U,cF as ve,cG as R,a5 as Se,d as P,cL as ye,b as he,cM as A}from"./vendor-vy-3b44047f.js";import{u as be}from"./breadcrumbs-context-d114e5ee.js";import{u as xe}from"./use-contract-4ee7a561.js";import{u as N}from"./use-validated-params-6dabfd0f.js";import{P as Te,a as Re}from"./breadcrumb-routes-3b4ebb59.js";import{b as Ae}from"./buildParentAgreementSettings-dd49b9ce.js";import"./vendor-mui-238acd1e.js";import"./vendor-vy-ds-885d80cb.js";import"./use-preview-currency-4052b1ee.js";import"./VyTooltip-6bcb524b.js";import"./Price-1f7c2338.js";import"./VyTextareaField-fc08cf8e.js";import"./use-country-options-b4d34c7b.js";import"./VySwitchField-fe849c62.js";import"./VyBooleanCheckboxField-5aa5d605.js";import"./use-catalog-products-list-5f86cccb.js";import"./use-anrok-enabled-1433a0ef.js";import"./use-debounce-c674a381.js";import"./use-net-suite-products-b58d8bcf.js";import"./use-net-suite-classes-76255a9e.js";import"./use-integration-entities-d3c1a2c2.js";import"./UpsertCatalogProductsDialog-1690daaa.js";import"./NetSuiteProductsDropdown-ce46a9d2.js";import"./build-erp-entity-from-external-integration-03c34b8c.js";import"./use-subsidiary-name-map-b6683d64.js";import"./use-subsidiaries-9438a3e5.js";import"./reference-data-query-options-consts-5095626a.js";import"./use-formatted-xero-products-b9819930.js";import"./use-paddle-products-c939e580.js";import"./use-stripe-tax-enabled-ae951464.js";import"./use-integration-settings-1461d694.js";import"./use-account-7dbbc7a8.js";import"./VyNumberFieldField-8608cbd2.js";import"./VySelectField-5d1c450d.js";import"./ArrowIcon-0a7a632e.js";import"./use-toggle-b8bd28b6.js";import"./use-billing-engine-estimation-4177f73c.js";import"./ContractPhasesTimelineContainer-e72323f9.js";import"./use-conditional-integration-prefetch-45d052b3.js";import"./AddIcon-b108927a.js";import"./add-item-button-consts-47e5b6b0.js";import"./VyPaper-00f3d28d.js";import"./UpsertCreditTypeDialog-fd2bfe78.js";import"./VyDateField-e8ded6f2.js";import"./VyDatePicker-ffe76d24.js";import"./picker-value-utils-370a432f.js";import"./use-menu-b2c157ac.js";import"./NetSuiteClassesDropdown-9f9a51fb.js";import"./VyTextFieldField-b4524273.js";import"./CloseButton-31e3dea9.js";import"./Divider-3514b461.js";import"./VyDescriptionTitle-f7aadd5a.js";import"./sizes-b8509740.js";import"./CustomerAutoComplete-58988c19.js";import"./use-customers-names-10c2875a.js";import"./VyAutocompleteSelect-a9c11eb2.js";import"./get-plan-duration-values-ee4d381f.js";import"./VyRadioGroup-ba51f15f.js";import"./proration-options-58b30ead.js";(function(){try{var a=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};a.SENTRY_RELEASE={id:"2cd2d3d210c4"};var t=new a.Error().stack;t&&(a._sentryDebugIds=a._sentryDebugIds||{},a._sentryDebugIds[t]="1c652412-13b5-4901-aa91-4b7a0c7f5577",a._sentryDebugIdIdentifier="sentry-dbid-1c652412-13b5-4901-aa91-4b7a0c7f5577")}catch{}})();const Ee=({children:a})=>{var f,C,v,S;const{contractId:t}=N("contractId"),{data:{contract:e},isSuccess:c}=xe(t,{refetchOnWindowFocus:!1}),o=T.useMemo(()=>[Te,Re(e.plan.name,t),{label:"Update contract"}],[e.plan.name,t]);be(o);const{planCreationStepper:{currentStep:d}}=q(),m=(e==null?void 0:e.contractType)===U.ParentAgreement,g=ie(!1,m),l=d===p.settings?g:ne,i=M({resolver:k(l),defaultValues:ge({startDate:e==null?void 0:e.startDate,customerId:(f=e==null?void 0:e.customer)==null?void 0:f.id,signatureDate:e==null?void 0:e.signatureDate,contractType:e==null?void 0:e.contractType})});
1return B(w.UpdateContract,{watch:i.watch,setValue:i.setValue,storage:window.localStorage}),ce(i),T.useEffect(()=>{if(c){const{products:D,...j}=e.plan,y=H(D),h=y.filter(ve),b=h.filter(n=>!R(n)),O=h.filter(n=>R(n)),Q=y.filter(Se).map(n=>{const x=K(n),u=b.find(F=>P(n.id)&&F.consumptionDriverProductId===n.id);return P(u==null?void 0:u.id)?{...x,drivesFixedProductId:u.id}:x}),_={...j,proRataSetting:z(e.plan),startDate:e.startDate,customerId:e.customer.id,currencyOverride:e.currencyOverride,contractType:e.contractType,fixedProducts:b,usageProducts:Q,promotionProducts:O};i.reset(_)}},[c,e.plan,e.currencyOverride,e.contractType,i]),r.jsx(G,{customerId:(C=e==null?void 0:e.customer)==null?void 0:C.id,children:r.jsx(Y,{customerId:(v=e==null?void 0:e.customer)==null?void 0:v.id,children:r.jsxs(V,{...i,children:[r.jsx("form",{className:"flex h-full flex-col",children:a}),P(i.formState.errors.root)&&r.jsx($,{errorMessage:((S=i.formState.errors.root)==null?void 0:S.message)??""})]})})})},we=E(Ee);function Ue(a){return I({mutationFn:async({contractId:t,updateContractRequest:e})=>{const o=await X().updateContract({contractId:t,updateContractRequest:e});return J(ye,o)},...a})}const Ne=()=>{const{contractId:a}=N("contractId"),t=L(),e=Z(),c=Ue();return async o=>{const d=ee(o,{errorContext:"Update contract validation"}),m=o.startDate,l=o.contractType===U.ParentAgreement?Ae(o):void 0;!d.success||he(m)||await te(`update-contract-${a}`,c,{contractId:a,updateContractRequest:{plan:d.data,startDate:m,currencyOverride:A(o.currencyOverride),signatureDate:A(o.signatureDate),parentAgreementSettings:l,credits:o==null?void 0:o.credits}},{pending:"Updating...",success:"Updated",error:"Failed to update contract"},{onSuccess:async()=>{localStorage.removeItem(w.UpdateContract),e(`/plans/contracts/${a}`),await Promise.all([t.invalidateQueries({predicate:i=>i.queryKey.includes(a)}),t.invalidateQueries(s.invoicesOverviewsNew()),t.invalidateQueries(s.invoicesHighlightsStatistics()),t.invalidateQueries(s.invoiceStatistics()),t.invalidateQueries(s.invoiceSummary()),t.invalidateQueries(s.billingCycleInvoices()),t.invalidateQueries(s.contracts()),t.invalidateQueries(s.contractsOverview()),t.invalidateQueries(s.contractsReport()),t.invalidateQueries(s.billingCyclesOverview()),t.invalidateQueries(s.recurringRevenueReport()),t.invalidateQueries(s.commitmentReport()),t.invalidateQueries(s.homePageAccountSummary()),t.invalidateQueries(s.customersOverviewsNew()),t.invalidateQueries(s.customerContractsOverviewPage()),t.invalidateQueries(s.creditPools())])}})}},De={[p.pricingAndProducts]:r.jsx(de,{}),[p.settings]:r.jsx(me,{})},je=()=>{const a=Ne();return r.jsxs(r.Fragment,{children:[r.jsx(W,{children:r.jsx("title",{children:"Update contract"})}),r.jsx(re,{planCreationReason:ae.EditContract,defaultPlanCreationStep:p.settings,onFormSubmission:a,children:r.jsx(we,{children:r.jsxs(se,{children:[r.jsx(ue,{}),r.jsx(pe,{}),r.jsx(le,{stepsContent:De}),r.jsx(Pe,{stepsLabels:fe,formClearable:!1})]})})})]})},Ht=E(Ce(je,oe));export{Ht as UpdateContractPage};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.