1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6047],{34979:(e,s,t)=>{"use strict";t.d(s,{E:()=>i});var a=t(82821),r=t(89099),n=t(14232);function i(){let{data:e,status:s}=(0,a.wV)(),t=(0,r.useRouter)();return(0,n.useEffect)(()=>{"loading"!==s&&(e&&"ADMIN"===e.user.role||t.replace("/"))},[e,s,t]),{authLoading:"loading"===s||!e||"ADMIN"!==e.user.role}}},37776:e=>{e.exports={wrapper:"LoadingSpinner_wrapper__U_AGM",spinner:"LoadingSpinner_spinner__gLM6X",spin:"LoadingSpinner_spin__jbm7O",sm:"LoadingSpinner_sm__JdC5C",md:"LoadingSpinner_md__qaFm1",lg:"LoadingSpinner_lg__KRaTl",label:"LoadingSpinner_label__EhFdW"}},40505:(e,s,t)=>{"use strict";t.d(s,{A:()=>m});var a=t(37876),r=t(48230),n=t.n(r),i=t(77821),l=t.n(i);function o(e){let{crumbs:s}=e;return(0,a.jsx)("nav",{className:l().breadcrumbs,"aria-label":"Breadcrumb",children:s.map((e,t)=>{let r=t===s.length-1;return(0,a.jsxs)("span",{className:l().item,children:[t>0&&(0,a.jsx)("span",{className:l().sep,children:"/"}),e.href&&!r?(0,a.jsx)(n(),{href:e.href,className:l().link,children:e.label}):(0,a.jsx)("span",{className:r?l().current:l().link,children:e.label})]},t)})})}var c=t(46963),d=t.n(c);function m(e){let{title:s,crumbs:t,action:r}=e;return(0,a.jsxs)("div",{className:d().header,children:[(0,a.jsxs)("div",{className:d().left,children:[t&&t.length>0&&(0,a.jsx)(o,{crumbs:t}),(0,a.jsx)("h1",{className:d().title,children:s})]}),r&&(0,a.jsx)("div",{className:d().action,children:r})]})}},46963:e=>{e.exports={header:"PageHeader_header__M06pS",left:"PageHeader_left__vrvwU",title:"PageHeader_title__50hUa",action:"PageHeader_action__XPlYH"}},58565:(e,s,t)=>{"use strict";t.d(s,{A:()=>i});var a=t(37876),r=t(37776),n=t.n(r);function i(e){let{size:s="md",label:t}=e;return(0,a.jsxs)("div",{className:n().wrapper,children:[(0,a.jsx)("span",{className:"".concat(n().spinner," ").concat(n()[s]),"aria-hidden":"true"}),t&&(0,a.jsx)("span",{className:n().label,children:t})]})}},69769:e=>{e.exports={page:"territory-assignments_page__pxCed",center:"territory-assignments_center__NNFnW",error:"territory-assignments_error__Ieiae",intro:"territory-assignments_intro__m_vsT",toolbar:"territory-assignments_toolbar__iDoy0",filterLabel:"territory-assignments_filterLabel__sKCD8",select:"territory-assignments_select__sEhdu",checkLabel:"territory-assignments_checkLabel__vBOcT",toolbarActions:"territory-assignments_toolbarActions__iFYRM",btnDanger:"territory-assignments_btnDanger__49Tgi",btnGhost:"territory-assignments_btnGhost__Ymd75",stats:"territory-assignments_stats__J141P",statCard:"territory-assignments_statCard__OzNHz",statCardWarn:"territory-assignments_statCardWarn__4QBAZ",statCardBad:"territory-assignments_statCardBad__EhOXl",statVal:"territory-assignments_statVal__YJ9uH",statLbl:"territory-assignments_statLbl__z4zdp",titleBlock:"territory-assignments_titleBlock__vEx8H",titleHead:"territory-assignments_titleHead__Erx1M",titleName:"territory-assignments_titleName__5qvNC",titleMeta:"territory-assignments_titleMeta__ju_xm",titleLink:"territory-assignments_titleLink__2U1EB",tableWrap:"territory-assignments_tableWrap__hozUv",table:"territory-assignments_table__DAxp0",rowProblem:"territory-assignments_rowProblem__bTRcc",checkCol:"territory-assignments_checkCol__MPajw",tBadge:"territory-assignments_tBadge__ndvCp",muted:"territory-assignments_muted__GKK_n",badges:"territory-assignments_badges__iTK4b",badgeOk:"territory-assignments_badgeOk__XYEtX",badgeBad:"territory-assignments_badgeBad__B_MKE",badgeInfo:"territory-assignments_badgeInfo__7I3fl",badgeMuted:"territory-assignments_badgeMuted__ymlBL",empty:"territory-assignments_empty__eact2",note:"territory-assignments_note__FaHK2",noteTitle:"territory-assignments_noteTitle__qfSVt",noteList:"territory-assignments_noteList__GHR2e"}},77328:(e,s,t)=>{e.exports=t(29269)},77821:e=>{e.exports={breadcrumbs:"Breadcrumbs_breadcrumbs__zQHYu",item:"Breadcrumbs_item___vgqj",sep:"Breadcrumbs_sep__Xtka6",link:"Breadcrumbs_link___lqmB",current:"Breadcrumbs_current__rkAHt"}},85396:(e,s,t)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/admin/territory-assignments",function(){return t(90292)}])},90292:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>p});var a=t(37876),r=t(14232),n=t(77328),i=t.n(n),l=t(48230),o=t.n(l),c=t(34979),d=t(40505),m=t(58565),_=t(69769),h=t.n(_);let g=new Intl.NumberFormat("en-CA",{style:"currency",currency:"CAD",maximumFractionDigits:0}),u={INVALID_TERRITORY:"Invalid territory",DUPLICATE_REP:"Duplicate rep"};function p(){let{authLoading:e}=(0,c.E)(),[s,t]=(0,r.useState)(null),[n,l]=(0,r.useState)(!0),[_,p]=(0,r.useState)(null),[b,x]=(0,r.useState)(""),[j,N]=(0,r.useState)(!0),[y,v]=(0,r.useState)(new Set),[f,C]=(0,r.useState)(!1),w=(0,r.useCallback)(async()=>
1{l(!0),p(null);try{let e=b?"?associationId=".concat(encodeURIComponent(b)):"",s=await fetch("/api/admin/territory-assignments".concat(e));if(!s.ok)throw Error("Failed to load");let a=await s.json();t(a),v(new Set)}catch(e){p("Failed to load territory assignments.")}finally{l(!1)}},[b]);(0,r.useEffect)(()=>{e||w()},[e,w]);let k=(0,r.useMemo)(()=>s?j?s.rows.filter(e=>e.problems.length>0):s.rows:[],[s,j]),T=(0,r.useMemo)(()=>{let e=new Map;for(let n of k){let i=null==s?void 0:s.titleSummaries.find(e=>e.id===n.titleId),l=n.titleId;if(!e.has(l)){var t,a,r;e.set(l,{titleName:n.titleName,associationName:null!=(t=null==i?void 0:i.associationName)?t:"",splitName:null!=(a=null==i?void 0:i.splitName)?a:"",valid:null!=(r=null==i?void 0:i.validTerritoryNumbers)?r:[],rows:[]})}e.get(l).rows.push(n)}return Array.from(e.values())},[k,s]);async function L(e){e.length&&confirm("Delete ".concat(e.length," assignment").concat(1===e.length?"":"s","?"))&&(C(!0),await fetch("/api/admin/territory-assignments",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"delete",assignmentIds:e})}),C(!1),w())}async function S(){if(!b)return;C(!0);let e=await fetch("/api/admin/territory-assignments",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"delete-invalid",associationId:b})}),s=await e.json();C(!1),s.deleted>0&&w()}return e||n?(0,a.jsx)("div",{className:h().center,children:(0,a.jsx)(m.A,{size:"lg",label:"Loadingâ¦"})}):_||!s?(0,a.jsx)("div",{className:h().center,children:(0,a.jsx)("p",{className:h().error,children:null!=_?_:"No data"})}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i(),{children:(0,a.jsx)("title",{children:"Territory Assignments | Davis Portal"})}),(0,a.jsxs)("div",{className:h().page,children:[(0,a.jsx)(d.A,{title:"Territory Assignments"}),(0,a.jsx)("p",{className:h().intro,children:"Debug and clean up rep territory assignments. Invalid territories and duplicate rep assignments can hide books on sales pages."}),(0,a.jsxs)("div",{className:h().toolbar,children:[(0,a.jsxs)("label",{className:h().filterLabel,children:["Association",(0,a.jsxs)("select",{className:h().select,value:b,onChange:e=>x(e.target.value),children:[(0,a.jsx)("option",{value:"",children:"All associations"}),s.associations.map(e=>(0,a.jsx)("option",{value:e.id,children:e.name},e.id))]})]}),(0,a.jsxs)("label",{className:h().checkLabel,children:[(0,a.jsx)("input",{type:"checkbox",checked:j,onChange:e=>N(e.target.checked)}),"Problems only"]}),(0,a.jsxs)("div",{className:h().toolbarActions,children:[b&&s.stats.invalidCount>0&&(0,a.jsxs)("button",{className:h().btnDanger,disabled:f,onClick:S,children:["Delete invalid (",s.stats.invalidCount,")"]}),y.size>0&&(0,a.jsxs)("button",{className:h().btnDanger,disabled:f,onClick:()=>L(Array.from(y)),children:["Delete selected (",y.size,")"]})]})]}),(0,a.jsxs)("div",{className:h().stats,children:[(0,a.jsxs)("div",{className:h().statCard,children:[(0,a.jsx)("span",{className:h().statVal,children:s.stats.totalAssignments}),(0,a.jsx)("span",{className:h().statLbl,children:"Total assignments"})]}),(0,a.jsxs)("div",{className:"".concat(h().statCard," ").concat(s.stats.problemRows?h().statCardWarn:""),children:[(0,a.jsx)("span",{className:h().statVal,children:s.stats.problemRows}),(0,a.jsx)("span",{className:h().statLbl,children:"With problems"})]}),(0,a.jsxs)("div",{className:"".concat(h().statCard," ").concat(s.stats.invalidCount?h().statCardBad:""),children:[(0,a.jsx)("span",{className:h().statVal,children:s.stats.invalidCount}),(0,a.jsx)("span",{className:h().statLbl,children:"Invalid territory #"})]}),(0,a.jsxs)("div",{className:"".concat(h().statCard," ").concat(s.stats.duplicateCount?h().statCardWarn:""),children:[(0,a.jsx)("span",{className:h().statVal,children:s.stats.duplicateCount}),(0,a.jsx)("span",{className:h().statLbl,children:"Duplicate rep rows"})]})]}),0===T.length?(0,a.jsx)("div",{className:h().empty,children:j?"No problems found â looking good.":"No territory assignments found."}):T.map(e=>{var t,r,n;return(0,a.jsxs)("section",{className:h().titleBlock,children:[(0,a.jsxs)("div",{className:h().titleHead,children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:h().titleName,children:e.titleName}),(0,a.jsxs)("p",{className:h().titleMeta,children:[e.associationName," \xb7 ",e.splitName," \xb7 Valid: ",e.valid.map(e=>
1"T".concat(e)).join(", ")]})]}),(0,a.jsx)(o(),{href:"/admin/production/".concat(e.rows[0]?null==(t=s.titleSummaries.find(s=>s.id===e.rows[0].titleId))?void 0:t.associationId:"","/").concat(null!=(n=null==(r=e.rows[0])?void 0:r.titleId)?n:""),className:h().titleLink,children:"Open in Production â"})]}),(0,a.jsx)("div",{className:h().tableWrap,children:(0,a.jsxs)("table",{className:h().table,children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{className:h().checkCol,children:(0,a.jsx)("input",{type:"checkbox",checked:e.rows.length>0&&e.rows.every(e=>y.has(e.id)),onChange:()=>{let s=e.rows.map(e=>e.id),t=s.every(e=>y.has(e));v(e=>{let a=new Set(e);return t?s.forEach(e=>a.delete(e)):s.forEach(e=>a.add(e)),a})}})}),(0,a.jsx)("th",{children:"Territory"}),(0,a.jsx)("th",{children:"Letters"}),(0,a.jsx)("th",{children:"Rep"}),(0,a.jsx)("th",{children:"Open issue target"}),(0,a.jsx)("th",{children:"Status"}),(0,a.jsx)("th",{})]})}),(0,a.jsx)("tbody",{children:e.rows.map(e=>{var s;return(0,a.jsxs)("tr",{className:e.problems.length?h().rowProblem:"",children:[(0,a.jsx)("td",{className:h().checkCol,children:(0,a.jsx)("input",{type:"checkbox",checked:y.has(e.id),onChange:()=>{var s;return s=e.id,void v(e=>{let t=new Set(e);return t.has(s)?t.delete(s):t.add(s),t})}})}),(0,a.jsx)("td",{children:(0,a.jsxs)("span",{className:h().tBadge,children:["T",e.territoryNumber]})}),(0,a.jsx)("td",{className:h().muted,children:null!=(s=e.letters)?s:"â"}),(0,a.jsx)("td",{children:e.repName}),(0,a.jsx)("td",{className:h().muted,children:null!=e.openIssueTarget?g.format(e.openIssueTarget):"â"}),(0,a.jsx)("td",{children:(0,a.jsxs)("div",{className:h().badges,children:[0===e.problems.length&&(0,a.jsx)("span",{className:h().badgeOk,children:"OK"}),e.problems.map(e=>(0,a.jsx)("span",{className:h().badgeBad,children:u[e]},e)),e.problems.includes("DUPLICATE_REP")&&(0,a.jsx)("span",{className:e.salesPageTerritory?h().badgeInfo:h().badgeMuted,children:e.salesPageTerritory?"Sales page uses this":"Hidden on sales page"})]})}),(0,a.jsx)("td",{children:(0,a.jsx)("button",{className:h().btnGhost,disabled:f,onClick:()=>L([e.id]),children:"Delete"})})]},e.id)})})]})})]},e.titleName+e.associationName)}),!b&&s.titleSummaries.some(e=>e.missingTerritories.length>0)&&(0,a.jsxs)("section",{className:h().note,children:[(0,a.jsx)("h3",{className:h().noteTitle,children:"Unassigned valid territories"}),(0,a.jsx)("ul",{className:h().noteList,children:s.titleSummaries.filter(e=>e.missingTerritories.length>0).map(e=>(0,a.jsxs)("li",{children:[(0,a.jsx)("strong",{children:e.associationName})," â ",e.name,": missing ",e.missingTerritories.map(e=>"T".concat(e)).join(", ")]},e.id))})]})]})]})}}},e=>{e.O(0,[636,6593,8792],()=>e(e.s=85396)),_N_E=e.O()}]);
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.