(self.webpackChunkmantis_material_react=self.webpackChunkmantis_material_react||[]).push([[4917],{4159:function(e){e.exports=function(){"use strict";var e=1e3,r=6e4,t=36e5,n="millisecond",i="second",s="minute",o="hour",a="day",d="week",c="month",l="quarter",u="year",f="date",h="Invalid Date",m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,p=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,v={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var r=["th","st","nd","rd"],t=e%100;return"["+e+(r[(t-20)%10]||r[t]||r[0])+"]"}},g=function(e,r,t){var n=String(e);return!n||n.length>=r?e:""+Array(r+1-n.length).join(t)+e},x={s:g,z:function(e){var r=-e.utcOffset(),t=Math.abs(r),n=Math.floor(t/60),i=t%60;return(r<=0?"+":"-")+g(n,2,"0")+":"+g(i,2,"0")},m:function e(r,t){if(r.date()1)return e(o[0])}else{var a=r.name;A[a]=r,i=a}return!n&&i&&(y=i),i||!n&&y},$=function(e,r){if(S(e))return e.clone();var t="object"==typeof r?r:{};return t.date=e,t.args=arguments,new j(t)},w=x;w.l=_,w.i=S,w.w=function(e,r){return $(e,{locale:r.$L,utc:r.$u,x:r.$x,$offset:r.$offset})};var j=function(){function v(e){this.$L=_(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[b]=!0}var g=v.prototype;return g.parse=function(e){this.$d=function(e){var r=e.date,t=e.utc;if(null===r)return new Date(NaN);if(w.u(r))return new Date;if(r instanceof Date)return new Date(r);if("string"==typeof r&&!/Z$/i.test(r)){var n=r.match(m);if(n){var i=n[2]-1||0,s=(n[7]||"0").substring(0,3);return t?new Date(Date.UTC(n[1],i,n[3]||1,n[4]||0,n[5]||0,n[6]||0,s)):new Date(n[1],i,n[3]||1,n[4]||0,n[5]||0,n[6]||0,s)}}return new Date(r)}(e),this.init()},g.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},g.$utils=function(){return w},g.isValid=function(){return!(this.$d.toString()===h)},g.isSame=function(e,r){var t=$(e);return this.startOf(r)<=t&&t<=this.endOf(r)},g.isAfter=function(e,r){return $(e){"use strict";t.r(r),t.d(r,{default:()=>Y});var n=t(89379),i=t(9950),s=t(28429),o=t(16491),a=t(55158),d=t(93230),c=t(83274),l=t(25333),u=t(82053),f=t(77922),h=t(29925),m=t(82223),p=t(48159),v=t(84142),g=t(48089),x=t(25277),y=t(96583),A=t(40033),b=t(28170),S=t(79739),_=t(36150),$=t(51778),w=t(4159),j=t.n(w),k=t(63189),M=t(99324),D=t(6604),z=t(31222),C=t(81425),O=t(20466),I=t(90376),R=t(94826),N=t(54413),W=t(84702),E=t(44414);const H=[{tuneid:1,type:"Balanced",value:"balanced"},{tuneid:2,type:"Aggressive Speed",value:"aggressive_speed"},{tuneid:3,type:"Fuel Saver",value:"fuel_saver"},{tuneid:4,type:"Zone Strict",value:"zone_strict"}];function T(e){return e.map((e=>{const r=Number(e.cumulativekms||0),t=Number(e.minkm||0),i=Number(e.baseprice||0),s=Number(e.priceperkm||0);return r<=t?(0,n.A)((0,n.A)({},e),{},{deliveryamt:i}):(0,n.A)((0,n.A)({},e),{},{deliveryamt:(r-t)*s+i})}))}const Y=()=>{var e,r;const t=(0,s.Zp)(),w=(0,s.zy)().state||{},[Y,F]=(0,i.useState)(w.dispatchPreviewData||null);(0,i.useEffect)((()=>{var e;w.dispatchPreviewData?"undefined"!==typeof window&&null!==(e=window.history)&&void 0!==e&&e.state&&window.history.replaceState((0,n.A)((0,n.A)({},window.history.state),{},{usr:null}),""):t("/nearle/orders",{replace:!0})}),[]);const[L,J]=(0,i.useState)([]),[U,B]=(0,i.useState)(!1),[Z,P]=(0,i.useState)(0),[V,q]=(0,i.useState)(!1),[K,Q]=(0,i.useState)(!1),[G,X]=(0,i.useState)((()=>new Set)),[ee,re]=(0,i.useState)(!1),[te,ne]=(0,i.useState)(null),[ie,se]=(0,i.useState)(null),[oe,ae]=(0,i.useState)(null),de=null!==(e=w.aiMode)&&void 0!==e?e:1,ce=w.selectedMode||null,le=w.deliveryData||[],ue=w.autoRiders||[],fe=w.absentRidersPayload||[],he=w.rider||null,me=(0,i.useMemo)((()=>{if(w.appId)return w.appId;if("undefined"!==typeof window){const e=localStorage.getItem("applocationid");return e?Number(e):0}return 0}),[w.appId]),{data:pe}=(0,_.I)({queryKey:["ridersList",me],queryFn:C.Sd,enabled:!!me,staleTime:3e5}),ve=(0,i.useMemo)((()=>(e=>{if(!e)return[];const r=new Map,t=new Set,n=(e,n,i)=>{if(null==e)return;const s=String(e);r.has(s)||r.set(s,{rider_id:e,rider_name:n,orders:[]});const o=r.get(s);(i||[]).forEach((e=>{const r=null!=(null===e||void 0===e?void 0:e.orderid)?String(e.orderid):null;if(r){if(t.has(r))return;t.add(r)}o.orders.push(e)})),!o.rider_name&&n&&(o.rider_name=n)};return Array.isArray(e.zones)&&e.zones.length?e.zones.forEach((e=>{(e.riders||[]).forEach((e=>{var r;const t=null!==(r=e.rider_id)&&void 0!==r?r:e.userid,i=e.rider_name||e.username||"Rider ".concat(t);n(t,i,e.orders)}))})):Array.isArray(e.details)&&e.details.forEach((e=>{var r;const t=null!==(r=e.rider_id)&&void 0!==r?r:e.userid,i=e.rider_name||e.ridername||"Rider ".concat(t);n(t,i,[e])})),Array.from(r.values())})(Y)),[Y]),ge=(0,i.useMemo)((()=>{const e=(e=>{const r=[];return e.forEach((e=>{const t=Number(e.rider_id),i=Number.isFinite(t)?t:e.rider_id;(e.orders||[]).forEach((t=>{r.push((0,n.A)((0,n.A)({},t),{},{rider_id:i,userid:i,rider_name:e.rider_name,rider:e.rider_name}))}))})),r})(ve);return e.length?T(e):Array.isArray(null===Y||void 0===Y?void 0:Y.details)?T(Y.details):[]}),[ve,Y]);(0,i.useEffect)((()=>{const e=ge.map((e=>({zone_name:e.zone_name,ordernotes:e.ordernotes,rider:e.rider,step:e.step,ordertype:e.ordertype,orderamount:e.orderamount,riderkms:e.riderkms,cumulativekms:e.cumulativekms,baseprice:e.baseprice,minkm:e.minkm,priceperkm:e.priceperkm,kms:e.kms,actualkms:e.actualkms,rider_charge:e.rider_charge,deliveryamt:e.deliveryamt,deliverycharges:e.deliverycharges,profit:e.profit})));J(e)}),[ge]);const xe=(0,$.n)({mutationFn:C.k3,onSuccess:()=>(0,O.k)("Notification sent Successfully","success",2e3),onError:e=>(0,O.k)(e.message,"error",2e3)}),ye=(0,$.n)({mutationFn:0==de?C.FC:C.Yk,onSuccess:e=>{(0,O.k)("Orders Optimised Successfully","success",2e3),F(e),Q(!1),X(new Set),B(!1)},onError:e=>{(0,O.k)(e.message,"error",4e3),B(!1)},onSettled:()=>B(!1)}),Ae=(0,$.n)({mutationFn:C.H2,onSuccess:()=>{(0,O.k)("Delivery Created Successfully","success",2e3),B(!1),null!==he&&void 0!==he&&he.userfcmtoken&&xe.mutate(he.userfcmtoken),t("/nearle/deliveries")},onError:e=>{(0,O.k)(e.message,"error",4e3),B(!1)},onSettled:()=>B(!1)}),be=(0,$.n)({mutationFn:C.U8,onMutate:()=>q(!0),onSuccess:e=>{Array.isArray(null===e||void 0===e?void 0:e.riders)?(F((r=>((e,r)=>{if(!e||!Array.isArray(null===r||void 0===r?void 0:r.riders))return e;const t=JSON.parse(JSON.stringify(e)),i=new Map(r.riders.map((e=>[String(e.rider_id),e.orders||[]])));Array.isArray(t.zones)&&t.zones.length?(t.zones.forEach((e=>{Array.isArray(e.riders)&&e.riders.forEach((e=>{var r;const t=String(null!==(r=e.rider_id)&&void 0!==r?r:e.userid);i.has(t)&&(e.orders=[])}))})),i.forEach(((e,r)=>{let n=!1;for(const s of t.zones){if(!Array.isArray(s.riders))continue;const t=s.riders.find((e=>{var t;return String(null!==(t=e.rider_id)&&void 0!==t?t:e.userid)===r}));if(t){t.orders=e,n=!0;break}}if(!n){var i;const n=t.zones[0];n.riders=n.riders||[],n.riders.push({rider_id:Number(r)||r,rider_name:(null===(i=e[0])||void 0===i?void 0:i.rider_name)||"Rider ".concat(r),orders:e})}}))):t.zones=[{zone_name:"Reconciled",riders:r.riders.map((e=>({rider_id:e.rider_id,rider_name:e.rider_name||"Rider ".concat(e.rider_id),orders:e.orders||[]})))}];const s=[];return t.zones.forEach((e=>{(e.riders||[]).forEach((e=>{(e.orders||[]).forEach((r=>{s.push((0,n.A)((0,n.A)({},r),{},{rider_id:e.rider_id,userid:e.rider_id,rider_name:e.rider_name,rider:e.rider_name}))}))}))})),t.details=s,t})(r,e))),Q(!0),X((r=>{const t=new Set(r);return e.riders.forEach((e=>t.delete(String(e.rider_id)))),t})),(0,O.k)("Steps reconciled \u2014 preview updated","success",2e3)):(0,O.k)("Reconcile returned no rider data","warning",3e3)},onError:e=>{(0,O.k)(e.message||"Reconcile failed","error",4e3)},onSettled:()=>q(!1)}),Se=e=>{B(!0),0==de?ye.mutate({deliveries:le}):ce&&1==(null===ce||void 0===ce?void 0:ce.value)?ye.mutate({deliveries:le,hypertuning_params:e||null,selectedMode:ce,absent_riders:fe}):ye.mutate({data:{orders:le,riders:ue,config:{pay_type:"hourly",base_pay:300,strategy:"multi_trip"},absent_riders:fe},selectedMode:ce})},_e=(e,r)=>{var t,n,i,s;const o=null!==(t=null!==(n=null!==(i=null!==(s=null===e||void 0===e?void 0:e.rider_id)&&void 0!==s?s:null===e||void 0===e?void 0:e.id)&&void 0!==i?i:null===r||void 0===r?void 0:r.rider_id)&&void 0!==n?n:null===r||void 0===r?void 0:r.userid)&&void 0!==t?t:null;se(o),ne(r),ae(null),re(!0)};return(0,E.jsxs)(o.A,{sx:{display:"flex",flexDirection:"column",height:"100vh",overflow:"hidden",position:"relative"},children:[(0,E.jsx)(a.A,{sx:{position:"absolute",color:"#fff",zIndex:e=>e.zIndex.modal+1},open:U,children:(0,E.jsx)(R.A,{color:"inherit"})}),(0,E.jsx)(o.A,{sx:{py:1.25,px:2,borderBottom:"1px solid #eef2f6"},children:(0,E.jsxs)(d.A,{direction:"row",alignItems:"center",justifyContent:"space-between",children:[(0,E.jsxs)(d.A,{direction:"row",alignItems:"center",spacing:1,children:[(0,E.jsx)(c.A,{title:"Back to orders",placement:"top",children:(0,E.jsx)(l.A,{onClick:()=>t("/nearle/orders"),sx:{bgcolor:"action.hover","&:hover":{bgcolor:"action.selected"}},children:(0,E.jsx)(M.eQE,{size:20})})}),(0,E.jsx)(u.A,{variant:"h3",fontWeight:600,children:"Assign Orders"})]}),(0,E.jsxs)(d.A,{direction:"row",alignItems:"center",spacing:1,children:[(0,E.jsx)(f.A,{options:H||[],getOptionLabel:e=>e.type,sx:{minWidth:250,maxWidth:600,flex:1},renderInput:e=>(0,E.jsx)(h.A,(0,n.A)((0,n.A)({},e),{},{label:"Hyper Tuning"})),onChange:(e,r,t)=>{Se("clear"===t?null:r.value)}}),(0,E.jsx)(m.A,{variant:"contained",color:"primary",startIcon:(0,E.jsx)(D.UF6,{}),onClick:()=>{B(!0),Se("reshuffle")},children:"Re-Assign"}),(0,E.jsx)(I.Ay,{data:L,filename:"Orders_Detail_".concat(j()().format("YYYY-MM-DD_HHmmss"),".csv"),label:" CSV",style:{m:1}})]})]})}),(0,E.jsx)(o.A,{sx:{px:2,borderBottom:"1px solid #eef2f6"},children:(0,E.jsxs)(p.A,{value:Z,onChange:(e,r)=>P(r),sx:{minHeight:40},children:[(0,E.jsx)(v.A,{label:"Dispatch",sx:{minHeight:40,textTransform:"none",fontWeight:600}}),(0,E.jsx)(v.A,{label:"Reconcile",sx:{minHeight:40,textTransform:"none",fontWeight:600}})]})}),(0,E.jsxs)(o.A,{sx:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden"},children:[0===Z&&Y&&(0,E.jsx)(N.default,{data:Y,embedded:!0,onChangeRider:(e,r)=>_e(r,e)},(null===Y||void 0===Y?void 0:Y.__cacheKey)||JSON.stringify(ve.length)),1===Z&&(0,E.jsx)(o.A,{sx:{flex:1,overflow:"auto",p:2,bgcolor:"#f8fafc"},children:0===ve.length?(0,E.jsx)(u.A,{sx:{color:"#94a3b8",textAlign:"center",mt:4},children:"No rider data available to reconcile."}):(0,E.jsxs)(d.A,{spacing:1.75,children:[(0,E.jsx)(o.A,{sx:{bgcolor:K?"#ecfdf5":"#fffbeb",border:"1px solid ".concat(K?"#a7f3d0":"#fde68a"),color:K?"#065f46":"#92400e",borderRadius:"10px",px:1.5,py:1,fontSize:13},children:K?"Steps have been reconciled. The Dispatch tab and Assign payload are updated.":"Click a numbered step to change its rider. Hit Reconcile to verify the corrected steps with the server."}),ve.map((e=>{const r=e.orders.reduce(((e,r)=>e+parseFloat(r.actualkms||r.kms||0)),0);return(0,E.jsxs)(g.A,{sx:{p:2,borderRadius:"12px",boxShadow:"0 1px 3px rgba(15,23,42,0.06)"},children:[(0,E.jsxs)(d.A,{direction:"row",justifyContent:"space-between",alignItems:"center",sx:{mb:1.25},children:[(0,E.jsxs)(d.A,{direction:"row",alignItems:"center",gap:1.25,children:[(0,E.jsx)(o.A,{sx:{width:32,height:32,borderRadius:"8px",bgcolor:"#eef2ff",color:"#4f46e5",display:"inline-flex",alignItems:"center",justifyContent:"center"},children:(0,E.jsx)(z.aVM,{size:18})}),(0,E.jsxs)(o.A,{children:[(0,E.jsx)(u.A,{sx:{fontWeight:700,fontSize:14,color:"#1e293b"},children:e.rider_name}),(0,E.jsxs)(u.A,{sx:{fontSize:11.5,color:"#64748b"},children:["ID: ",e.rider_id]})]})]}),(0,E.jsxs)(d.A,{direction:"row",gap:1,children:[(0,E.jsx)(x.A,{size:"small",label:"".concat(e.orders.length," stops"),sx:{fontWeight:600}}),(0,E.jsx)(x.A,{size:"small",label:"".concat(r.toFixed(1)," km"),variant:"outlined"})]})]}),(0,E.jsx)(d.A,{direction:"row",gap:1.25,sx:{flexWrap:"wrap",alignItems:"center"},children:e.orders.map(((r,t)=>{var n;const i=null!==(n=r.step)&&void 0!==n?n:t+1,s=(0,W.gM)(Number(i)-1);return(0,E.jsx)(c.A,{title:(0,E.jsxs)(o.A,{children:[(0,E.jsxs)("div",{children:["Order #",r.orderid]}),(0,E.jsx)("div",{children:r.deliveryaddress||r.deliverysuburb||""}),(0,E.jsx)("div",{style:{marginTop:4,opacity:.8},children:"Click to change rider"})]}),children:(0,E.jsx)(o.A,{onClick:()=>_e(e,r),sx:{width:36,height:36,borderRadius:"50%",bgcolor:s,color:"#fff",display:"inline-flex",alignItems:"center",justifyContent:"center",fontWeight:800,fontSize:14,cursor:"pointer",boxShadow:"0 0 0 2px rgba(255,255,255,0.6), 0 1px 3px rgba(15,23,42,0.15)",transition:"transform 0.15s","&:hover":{transform:"scale(1.08)"}},children:i})},"".concat(r.orderid,"-").concat(t))}))})]},e.rider_id)})),(0,E.jsx)(o.A,{sx:{display:"flex",justifyContent:"center",pt:1.5,pb:2},children:(0,E.jsx)(m.A,{variant:"contained",color:"primary",size:"large",startIcon:(0,E.jsx)(z.$G1,{}),onClick:()=>{if(!ve.length)return void(0,O.k)("No riders to reconcile","warning",3e3);const e=ve.filter((e=>G.has(String(e.rider_id))));e.length?be.mutate({riders:e.map((e=>({rider_id:e.rider_id,orders:e.orders})))}):(0,O.k)("No edits to reconcile","info",2500)},disabled:V||0===G.size,sx:{minWidth:220,borderRadius:"10px",textTransform:"none",fontWeight:700},children:V?"Reconciling...":0===G.size?"Reconcile":"Reconcile (".concat(G.size,")")})})]})})]}),(0,E.jsx)(o.A,{sx:{px:2,py:1.25,borderTop:"1px solid #eef2f6"},children:(0,E.jsxs)(d.A,{direction:"row",gap:2,alignItems:"center",justifyContent:"end",children:[(0,E.jsx)(m.A,{variant:"contained",color:"secondary",startIcon:(0,E.jsx)(k.A,{}),onClick:()=>t(-1),children:"Back"}),(0,E.jsx)(m.A,{variant:"contained",onClick:()=>{null!==ge&&void 0!==ge&&ge.length?(B(!0),Ae.mutate({deliveries:ge})):(0,O.k)("No deliveries to assign","error",3e3)},children:"Assign Orders"})]})}),(0,E.jsxs)(y.A,{open:ee,onClose:()=>re(!1),maxWidth:"xs",fullWidth:!0,children:[(0,E.jsx)(A.A,{sx:{fontWeight:700},children:"Change Rider"}),(0,E.jsxs)(b.A,{children:[(0,E.jsxs)(u.A,{sx:{mb:2,fontSize:13,color:"text.secondary"},children:["Move order #",null===te||void 0===te?void 0:te.orderid," (step ",null!==(r=null===te||void 0===te?void 0:te.step)&&void 0!==r?r:"\u2014",") to:"]}),(0,E.jsx)(f.A,{options:pe||[],getOptionLabel:e=>(null===e||void 0===e?void 0:e.label)||"".concat((null===e||void 0===e?void 0:e.firstname)||""," ").concat((null===e||void 0===e?void 0:e.lastname)||"").trim()||"",value:oe,onChange:(e,r)=>ae(r),renderInput:e=>(0,E.jsx)(h.A,(0,n.A)((0,n.A)({},e),{},{label:"New rider",placeholder:"Pick a rider"}))})]}),(0,E.jsxs)(S.A,{sx:{px:3,pb:2},children:[(0,E.jsx)(m.A,{onClick:()=>re(!1),children:"Cancel"}),(0,E.jsx)(m.A,{variant:"contained",disabled:!oe,onClick:()=>{if(!oe||!te)return;const e=Number(oe.userid),r=oe.label||"".concat(oe.firstname||""," ").concat(oe.lastname||"").trim()||"Rider ".concat(e);F((t=>((e,r)=>{let{orderId:t,newRiderId:i,newRiderName:s}=r;if(!e)return e;const o=JSON.parse(JSON.stringify(e));if(Array.isArray(o.details)&&(o.details=o.details.map((e=>String(e.orderid)===String(t)?(0,n.A)((0,n.A)({},e),{},{rider_id:i,userid:i,rider_name:s,rider:s}):e))),Array.isArray(o.zones)){let e=null,r=-1;for(let n=0;nString(e.orderid)===String(t)));-1!==a&&(e=o.orders[a],o.orders.splice(a,1),r=n)}}if(e){const t=(0,n.A)((0,n.A)({},e),{},{rider_id:i,userid:i,rider_name:s,rider:s});let a=!1;for(const e of o.zones){if(!Array.isArray(e.riders))continue;const r=e.riders.find((e=>{var r;return String(null!==(r=e.rider_id)&&void 0!==r?r:e.userid)===String(i)}));if(r){r.orders=r.orders||[],r.orders.push(t),a=!0;break}}!a&&r>=0&&o.zones[r].riders.push({rider_id:i,userid:i,rider_name:s,orders:[t]})}}return o})(t,{orderId:te.orderid,oldRiderId:ie,newRiderId:e,newRiderName:r}))),X((r=>{const t=new Set(r);return null!=ie&&t.add(String(ie)),null!=e&&Number.isFinite(e)&&t.add(String(e)),t})),Q(!1),re(!1),(0,O.k)("Rider changed \u2014 click Reconcile to verify steps","info",2500)},children:"Change Rider"})]})]})]})}}}]);