1import{r as T,j as r,p as I,o as L}from"./vendor-react-2cb5d109.js";import{aM as M,aT as B,aQ as V,H as q}from"./vendor-misc-09f7f1da.js";import{w as E,al as W,ah as p,am as k,L as w,ae as H,an as K,af as z,ao as Y,ap as $,ag as G,e as X,p as J,u as Z,ad as ee,aq as te,q as s,ai as re,aj as ae,ak as se}from"./app-core-47ba8b05.js";import{p as oe}from"./use-meters-85139a64.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-5042aa43.js";import{g as ge,C as fe}from"./is-add-product-4572c576.js";import{w as Ce}from"./withPrefetch-7f65c98b.js";import{a4 as U,cL as ve,cM as R,a5 as Se,d as P,cO as ye,b as he,cP as A}from"./vendor-vy-bde48d53.js";import{u as be}from"./breadcrumbs-context-0c78adb5.js";import{u as xe}from"./use-contract-97c97340.js";import{u as N}from"./use-validated-params-86b4212a.js";import{P as Te,a as Re}from"./breadcrumb-routes-44c27586.js";import{b as Ae}from"./buildParentAgreementSettings-54fe6451.js";import"./vendor-mui-c34240eb.js";import"./vendor-vy-ds-da93fbfd.js";import"./use-preview-currency-dc44ba66.js";import"./VyTooltip-4f1579b8.js";import"./Price-ca3b453e.js";import"./VyTextareaField-579aff82.js";import"./use-country-options-3439e58f.js";import"./VySwitchField-a98cbfa4.js";import"./VyBooleanCheckboxField-0950e339.js";import"./use-catalog-products-list-c0194d38.js";import"./use-anrok-enabled-12d4bf8f.js";import"./use-debounce-9c73162a.js";import"./use-net-suite-products-fd048f9c.js";import"./use-net-suite-classes-75dcbd11.js";import"./use-integration-entities-1651b4a3.js";import"./UpsertCatalogProductsDialog-137266f3.js";import"./NetSuiteProductsDropdown-9e8092ec.js";import"./build-erp-entity-from-external-integration-c2233303.js";import"./use-subsidiary-name-map-1b4f6602.js";import"./use-subsidiaries-8dc9e8d5.js";import"./reference-data-query-options-consts-650f2d3a.js";import"./use-formatted-xero-products-59612754.js";import"./use-paddle-products-e49d99db.js";import"./use-stripe-tax-enabled-f180c173.js";import"./use-integration-settings-73f65532.js";import"./use-account-f5081143.js";import"./VyNumberFieldField-69744edb.js";import"./VySelectField-91eba7ea.js";import"./ArrowIcon-d040794b.js";import"./use-toggle-783e3c5d.js";import"./use-billing-engine-estimation-a3bfc9ed.js";import"./ContractPhasesTimelineContainer-ff2d5b89.js";import"./use-conditional-integration-prefetch-c9e796e0.js";import"./AddIcon-5186b6a7.js";import"./add-item-button-consts-bf47235d.js";import"./VyPaper-96854b56.js";import"./UpsertCreditTypeDialog-68370c7a.js";import"./VyDateField-6676fe96.js";import"./VyDatePicker-c895f2d9.js";import"./picker-value-utils-d352bb2c.js";import"./use-menu-fcf82705.js";import"./NetSuiteClassesDropdown-af5ee846.js";import"./VyTextFieldField-1213b1b9.js";import"./CloseButton-355e860c.js";import"./Divider-4bbc969c.js";import"./VyDescriptionTitle-5e029d35.js";import"./sizes-d6239a18.js";import"./CustomerAutoComplete-009f1766.js";import"./use-customers-names-b6b996a9.js";import"./VyAutocompleteSelect-bfa7b70d.js";import"./get-plan-duration-values-5616ad3a.js";import"./VyRadioGroup-885426b1.js";import"./proration-options-21518719.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:"a44d049e7c59"};var t=new a.Error().stack;t&&(a._sentryDebugIds=a._sentryDebugIds||{},a._sentryDebugIds[t]="6d77813d-1985-4d79-a77b-67e0e92968ab",a._sentryDebugIdIdentifier="sentry-dbid-6d77813d-1985-4d79-a77b-67e0e92968ab")}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}}=W(),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(Y,{customerId:(C=e==null?void 0:e.customer)==null?void 0:C.id,children:r.jsx($,{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(G,{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(q,{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.