1import{q as h,j as t,a_ as A}from"./vendor-react-2cb5d109.js";import{H as g}from"./vendor-misc-09f7f1da.js";import{A as x}from"./AiCopilotDrawer-40f0c65c.js";import{A as E}from"./AiCopilotProvider-549ad299.js";import{u as R}from"./use-ai-copilot-e2bd1583.js";import{R as _,a as M}from"./ReportPage-b8142e1c.js";import{e as D,p as S,q as O,aA as y,aB as U,z as u,aC as m,aD as l,aE as I,w as v,k as j}from"./app-core-47ba8b05.js";import{U as P,a as b}from"./usage-data-report-suggestions-49e18ea3.js";import{cZ as W,p as G,ae as Y,s as f,d as L}from"./vendor-vy-bde48d53.js";import{u as w}from"./use-search-with-search-params-e26dc43c.js";import{R as F}from"./RevenueReportToolbar-1ae08560.js";import{C as k}from"./CustomerNameFilteredReportGrid-f9972e8e.js";import{R as Q}from"./ReportHeader-0bb4d0aa.js";import{l as n,c as p}from"./vendor-vy-ds-da93fbfd.js";import{u as V}from"./vendor-mui-c34240eb.js";import"./VyLayout-20044627.js";import"./use-account-f5081143.js";import"./reference-data-query-options-consts-650f2d3a.js";import"./use-subsidiaries-8dc9e8d5.js";import"./use-descope-sdk-5ae34fa9.js";import"./breadcrumbs-context-0c78adb5.js";import"./breadcrumb-routes-44c27586.js";import"./app-router-b196f9b3.js";import"./use-jobs-a8040d6f.js";import"./VyPageLayoutTabs-bb33aa5c.js";import"./page-frame-c2a7254f.js";import"./use-state-params-e6f24508.js";import"./picker-value-utils-d352bb2c.js";import"./use-trigger-report-job-5eafb877.js";import"./stable-row-id-142b2534.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"a44d049e7c59"};var a=new e.Error().stack;a&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[a]="c5a0ecfd-4b22-42ea-b05b-fd50d3231fda",e._sentryDebugIdIdentifier="sentry-dbid-c5a0ecfd-4b22-42ea-b05b-fd50d3231fda")}catch{}})();function q(e,a){const s=Y(e,""),i=h(O.commitmentReport(s),async()=>{const o=await D().getCommitmentReport({reportId:e});return S(W,o)},{suspense:!0,...a});return G(i.data,"getCommitmentReportQuery data"),i}const r=Object.freeze({CUSTOMER_NAME:"customerName",ERP_ID:"erpId",CONSUMED_UNITS:"commitmentConsumptionUnitsAmount",PRODUCT_VARIANT_NAME:"productVariantName",CONTRACT_START_DATE:"contractStartDate",CONTRACT_END_DATE:"contractEndDate",DAYS_TO_CONTRACT_END_DATE:"daysToContractEnd",MAXIMUM_COMMITMENT:"totalCommitmentCurrencyAmount",TOTAL_COMMITMENT_CONSUMED:"commitmentConsumptionCurrencyAmount",USAGE_PERCENTAGE:"commitmentConsumptionPercentage",COMMERCIAL_TERMS_AMOUNT:"commercialTermsAmount",TOTAL_COMMITMENT_UNITS:"totalCommitmentUnitsAmount",CURRENCY:"currency",STATUS:"contractStatus",CONTRACT_NAME:"contractName"}),B=[{field:r.CUSTOMER_NAME,headerName:"Customer",headerClassName:"text-sm",flex:1,minWidth:150,valueGetter:(e,a)=>a.customerName,headerAlign:"left",align:"left",renderCell:({row:e})=>t.jsx(y,{customerId:e.customerId,name:e.customerName})},{field:r.ERP_ID,headerName:"ERP ID",headerClassName:"text-sm",flex:1,minWidth:75,headerAlign:"left",align:"left",renderCell:({row:e})=>t.jsx(n,{value:e.erpId?e.erpId.slice(-5):"--"})},{field:r.PRODUCT_VARIANT_NAME,headerName:"Product",headerClassName:"text-sm",flex:1,minWidth:150,headerAlign:"left",align:"left",renderCell:({value:e})=>t.jsx(n,{value:e})},{field:r.STATUS,headerName:"Status",headerClassName:"text-sm",flex:1,minWidth:100,headerAlign:"left",align:"left",renderCell:({value:e})=>t.jsx(n,{value:e})},{field:r.CONTRACT_NAME,headerName:"Contract name",headerClassName:"text-sm",flex:1,minWidth:150,valueGetter:(e,a)=>a.contractName,headerAlign:"left",align:"left",renderCell:({row:e})=>t.jsx(U,{contractId:e.contractId,name:e.contractName})},{field:r.CONTRACT_START_DATE,headerName:"Contract start day",headerClassName:"text-sm",flex:1,minWidth:150,headerAlign:"left",align:"left",valueFormatter:e=>f(e).format("YYYY-MM-DD"),renderCell:({value:e})=>t.jsx(n,{value:u(e)})},{field:r.CONTRACT_END_DATE,headerName:"Contract end day",headerClassName:"text-sm",flex:1,minWidth:150,headerAlign:"left",align:"left",valueFormatter:e=>f(e).format("YYYY-MM-DD"),renderCell:({value:e})=>t.jsx(n,{value:L(e)?u(e):"--"})},{field:r.DAYS_TO_CONTRACT_END_DATE,headerName:"Days to end",headerClassName:"text-sm",flex:1,minWidth:125,headerAlign:"left",align:"left",renderCell:({row:{daysToContractEnd:e}})=>t.jsx(n,{value:e??"Unlimited"})},{field:r.MAXIMUM_COMMITMENT,headerName:"Minimum commitment",headerClassName:"text-sm",flex:1,minWidth:150,headerAlign:"left",align:"left",valueFormatter:e=>m(e,2),renderCell:({value:e,row:a})=>t.jsx(n,{value:l(a.currency,e)})},{field:r.TOTAL_COMMITMENT_CONSUMED,headerName:"Total consumed",headerClassName:"text-sm",flex:1,minWidth:150,headerAlign:"left",align:"left",valueFormatter:e=>m(e,2),renderCell:({value:e,row:a})=>t.jsx(n,{value:l(a.currency,e)})},{field:r.TOTAL_COMMITMENT_UNITS,headerName:"Quantity commitment",headerClassName:"text-sm",flex:1,minWidth:150,headerAlign:"left",align:"left",valueFormatter:e=>m(e,2),renderCell:({row:{totalCommitmentUnitsAmount:e}})=>t.jsx(n,{value:m(e,2)})},{field:r.CONSUMED_UNITS,headerName:"Consumed (Quantity)",headerClassName:"text-sm",flex:1,minWidth:150,headerAlign:"left",align:"left",valueFormatter:e=>m(e,2),renderCell:({value:e})=>t.jsx(n,{value:m(e,2)})},{field:r.USAGE_PERCENTAGE,headerName:"% usage",headerClassName:"text-sm",flex:1,minWidth:100,headerAlign:"left",align:"left",valueFormatter:e=>m(e,2),renderCell:({value:e})=>
1t.jsx(n,{value:I(e)})},{field:r.COMMERCIAL_TERMS_AMOUNT,headerName:"Commercials",headerClassName:"text-sm",flex:1,minWidth:150,headerAlign:"left",align:"left",valueFormatter:e=>m(e,2),renderCell:({value:e,row:a})=>t.jsx(n,{value:l(a.currency,e)})},{field:r.CURRENCY,headerName:"Currency",headerClassName:"text-sm",flex:1,minWidth:100,headerAlign:"left",align:"left",renderCell:({row:e})=>t.jsx(n,{value:e.currency})}],H=({reportId:e})=>{const{data:a,isLoading:s}=q(e),[i,d]=w(),{report:o,startDate:N,endDate:T,creationDate:C}=a,c=V();return t.jsx(_,{title:"Commitment usage report",export:{apiRef:c,exportCsvFileName:"Commitment usage report",reportCreationDate:C},toolbar:t.jsxs(p,{sx:{gap:2},children:[t.jsx(Q,{reportData:o,startDate:N,endDate:T,creationDate:C}),t.jsx(F,{search:{value:i??"",onChange:d,placeholder:"Enter customer name..."}})]}),children:t.jsx(k,{isLoading:s,filter:i??void 0,apiRef:c,rows:o,columns:B})})},X=({reportId:e})=>{const{isOpen:a,drawerWidth:s}=R();return t.jsxs(t.Fragment,{children:[t.jsx(p,{sx:{transition:i=>i.transitions.create("margin-right",{easing:a?i.transitions.easing.easeOut:i.transitions.easing.sharp,duration:a?i.transitions.duration.enteringScreen:i.transitions.duration.leavingScreen}),marginRight:a?`${s}px`:0},children:t.jsx(M,{children:t.jsx(H,{reportId:e})})}),t.jsx(x,{})]})},z=()=>{const{reportId:e}=A();return t.jsxs(E,{suggestions:P,reportContext:b,children:[t.jsx(g,{children:t.jsx("title",{children:"Report"})}),t.jsx(X,{reportId:e})]})},De=v(j(z));export{De as CommitmentUsageReportPage};
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.