1import{n as ja,A as $,D as Je,a9 as Pa,r as T,j as e,h as te,i as ae,k as se,l as ea,d as L,e as K,c as $t,a as be,f as me,g as de,T as Ct,B as V,b as H,C as ba,u as va,q as Na,t as ce,L as Ae,X as ot,R as Ca}from"./index-T5nyJFFV.js";import{D as Ot}from"./DashboardLayout-BHRLr7Kp.js";import{B as k}from"./badge-C5TQyfYT.js";import{S as mt,a as dt,b as xt,c as pt,d as yt}from"./select-B85uJR_b.js";import{T as Da,a as Sa,b as Be,c as Ve}from"./tabs-DdlGtUho.js";import{I as Lt}from"./input-CrjApyCF.js";import{P as Aa}from"./progress-gDCFoDtp.js";import{P as Kt,a as Ft,b as Yt}from"./popover-BNeCEM4i.js";import{C as Ta}from"./checkbox-z6tRLmU7.js";import{T as ke,d as wa,g as ka,a3 as Ia}from"./navigation-C3hjpKHv.js";import Dt from"./html2canvas.esm-B0tyYwQk.js";import{E as Ea}from"./jspdf.es.min-Dr_Wq6Nj.js";import{T as ve,a as Ne,b as F,c as C,d as Ce,e as y}from"./table-CyN-ZWq6.js";import{M as Ma}from"./minus-1PmQRu-w.js";import{T as ta}from"./trending-down-C2aAJl7Z.js";import{F as aa}from"./file-text-DRXKjAQT.js";import{C as sa}from"./chevron-right-ao0_Il05.js";import{A as et}from"./arrow-up-down-DSvOaEJ-.js";import{A as tt}from"./arrow-up-CMRTmT4A.js";import{A as at}from"./arrow-down-CruV3_Bq.js";import{B as jt}from"./building-2-DHXObSyr.js";import{T as Pt}from"./truck-mh_Dw7SA.js";import{c as Te,J as Re,p as He,D as Ra,d as ut,A as $a,h as Ue,l as Oa,o as La,G as Ka,q as _t,W as Fa,j as zt,g as Ya,V as _a,C as U,R as W,a as ne,X as le,Y as Z,T as G,B as re,b as $e,L as je,t as bt}from"./ChartErrorBoundary-D1hAx8jC.js";import{B as Pe}from"./BarChart-ZdpOudbP.js";import{A as za}from"./AreaChart-Dp7wQZxJ.js";import{A as qt}from"./Area-j-QTSGBc.js";import{U as na}from"./users-Bfhr95HF.js";import{S as Bt}from"./shield-alert-8oqUzXTh.js";import{b as qa,c as la,d as ra,P as Ba,a as Va}from"./PieChart-BUMxhC8-.js";import{I as oe}from"./info-Dy2-1uAY.js";import{a as ca,G as Ha,C as Vt}from"./settings-PedzcGJT.js";import{D as St}from"./download-mMdEW2BS.js";import{C as Ht}from"./ComposedChart-DVM5-lY1.js";import{L as Ge}from"./Line-CEbmKymg.js";import{L as Ua}from"./LineChart-DK1gYhhz.js";import{a as Wa}from"./dateUtils-DAIac9UL.js";import{C as Ga}from"./calendar-Sy4Jw0Y9.js";import{M as Ja}from"./map-pin-D5PeKpI1.js";import{C as Ut}from"./chevrons-up-down-B9Bj6nZD.js";import{C as gt}from"./check-DwNLX-GA.js";import{S as Qa}from"./search-CgSZHfWF.js";import{F as Xa}from"./file-down-C7aO6PMx.js";import"./dialog-DeV6_amp.js";import"./play-BhkvceeI.js";import"./target-BuW5LVfX.js";import"./message-square-Bf1tv8Ok.js";import"./message-circle-VNr0KhCa.js";import"./upload-TVKBjj-1.js";import"./file-spreadsheet-C6t7NEb0.js";import"./chevron-left-cw3ou3fn.js";import"./circle-check-big-Be611mD_.js";import"./shield-BZtALKZ6.js";import"./log-out-Byk8euDy.js";import"./party-popper-CvouvDOm.js";import"./calendar-clock-CU7ivC6_.js";import"./index-BSY0BWl0.js";import"./useComposition-C00Y3JuO.js";import"./string-0bvjYUJm.js";import"./index-C7yKKq-w.js";import"./band-CquvqAHh.js";import"./init-Dmth1JHB.js";import"./ordinal-DILIJJjt.js";import"./linear-B73P1QuO.js";import"./defaultLocale-C4B-KCzX.js";import"./time-BOCF2igb.js";/** 2 * @license lucide-react v0.542.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const Za=[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8",key:"1h4pet"}],["path",{d:"M12 17.5v-11",key:"1jc1ny"}]],vt=ja("receipt",Za);var es=["cx","cy","innerRadius","outerRadius","gridType","radialLines"];function Oe(t){"@babel/helpers - typeof";return Oe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(a){return typeof a}:function(a){return a&&typeof Symbol=="function"&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},Oe(t)}function ts(t,a){if(t==null)return{};var n=as(t,a),l,r;if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(t);for(r=0;r<d.length;r++)l=d[r],!(a.indexOf(l)>=0)&&Object.prototype.propertyIsEnumerable.call(t,l)&&(n[l]=t[l])}return n}function as(t,a){if(t==null)return{};var n={};for(var l in t)if(Object.prototype.hasOwnProperty.call(t,l)){if(a.indexOf(l)>=0)continue;n[l]=t[l]}return n}function ye(){return ye=Object.assign?Object.assign.bind():function(t){for(var a=1;a<arguments.length;a++){var n=arguments[a];for(var l in n)Object.prototype.hasOwnProperty.call(n,l)&&(t[l]=n[l])}return t},ye.apply(this,arguments)}function Wt(t,a){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);a&&(l=l.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,l)}return n}function Le(t){for(var a=1;a<arguments.length;a++){var n=arguments[a]!=null?arguments[a]:{};
vendor: 9,388 bytes, line 6
6a%2?Wt(Object(n),!0).forEach(function(l){ss(t,l,n[l])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Wt(Object(n)).forEach(function(l){Object.defineProperty(t,l,Object.getOwnPropertyDescriptor(n,l))})}return t}function ss(t,a,n){return a=ns(a),a in t?Object.defineProperty(t,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[a]=n,t}function ns(t){var a=ls(t,"string");return Oe(a)=="symbol"?a:a+""}function ls(t,a){if(Oe(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var l=n.call(t,a);if(Oe(l)!="object")return l;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(t)}var rs=function(a,n,l,r){var d="";return r.forEach(function(h,u){var b=Re(n,l,a,h);u?d+="L ".concat(b.x,",").concat(b.y):d+="M ".concat(b.x,",").concat(b.y)}),d+="Z",d},cs=function(a){var n=a.cx,l=a.cy,r=a.innerRadius,d=a.outerRadius,h=a.polarAngles,u=a.radialLines;if(!h||!h.length||!u)return null;var b=Le({stroke:"#ccc"},Te(a,!1));return $.createElement("g",{className:"recharts-polar-grid-angle"},h.map(function(f){var D=Re(n,l,r,f),i=Re(n,l,d,f);return $.createElement("line",ye({},b,{key:"line-".concat(f),x1:D.x,y1:D.y,x2:i.x,y2:i.y}))}))},is=function(a){var n=a.cx,l=a.cy,r=a.radius,d=a.index,h=Le(Le({stroke:"#ccc"},Te(a,!1)),{},{fill:"none"});return $.createElement("circle",ye({},h,{className:Je("recharts-polar-grid-concentric-circle",a.className),key:"circle-".concat(d),cx:n,cy:l,r}))},os=function(a){var n=a.radius,l=a.index,r=Le(Le({stroke:"#ccc"},Te(a,!1)),{},{fill:"none"});return $.createElement("path",ye({},r,{className:Je("recharts-polar-grid-concentric-polygon",a.className),key:"path-".concat(l),d:rs(n,a.cx,a.cy,a.polarAngles)}))},ms=function(a){var n=a.polarRadius,l=a.gridType;return!n||!n.length?null:$.createElement("g",{className:"recharts-polar-grid-concentric"},n.map(function(r,d){var h=d;return l==="circle"?$.createElement(is,ye({key:h},a,{radius:r,index:d})):$.createElement(os,ye({key:h},a,{radius:r,index:d}))}))},ia=function(a){var n=a.cx,l=n===void 0?0:n,r=a.cy,d=r===void 0?0:r,h=a.innerRadius,u=h===void 0?0:h,b=a.outerRadius,f=b===void 0?0:b,D=a.gridType,i=D===void 0?"polygon":D,j=a.radialLines,N=j===void 0?!0:j,p=ts(a,es);return f<=0?null:$.createElement("g",{className:"recharts-polar-grid"},$.createElement(cs,ye({cx:l,cy:d,innerRadius:u,outerRadius:f,gridType:i,radialLines:N},p)),$.createElement(ms,ye({cx:l,cy:d,innerRadius:u,outerRadius:f,gridType:i,radialLines:N},p)))};ia.displayName="PolarGrid";var ht,Gt;function ds(){if(Gt)return ht;Gt=1;function t(a){return a&&a.length?a[0]:void 0}return ht=t,ht}var ft,Jt;function xs(){return Jt||(Jt=1,ft=ds()),ft}var ps=xs();const ys=Pa(ps);var us=["key"];function Ie(t){"@babel/helpers - typeof";return Ie=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(a){return typeof a}:function(a){return a&&typeof Symbol=="function"&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},Ie(t)}function gs(t,a){if(t==null)return{};var n=hs(t,a),l,r;if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(t);for(r=0;r<d.length;r++)l=d[r],!(a.indexOf(l)>=0)&&Object.prototype.propertyIsEnumerable.call(t,l)&&(n[l]=t[l])}return n}function hs(t,a){if(t==null)return{};var n={};for(var l in t)if(Object.prototype.hasOwnProperty.call(t,l)){if(a.indexOf(l)>=0)continue;n[l]=t[l]}return n}function Qe(){return Qe=Object.assign?Object.assign.bind():function(t){for(var a=1;a<arguments.length;a++){var n=arguments[a];for(var l in n)Object.prototype.hasOwnProperty.call(n,l)&&(t[l]=n[l])}return t},Qe.apply(this,arguments)}function Qt(t,a){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);a&&(l=l.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,l)}return n}function B(t){for(var a=1;a<arguments.length;a++){var n=arguments[a]!=null?arguments[a]:{};a%2?Qt(Object(n),!0).forEach(function(l){xe(t,l,n[l])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Qt(Object(n)).forEach(function(l){Object.defineProperty(t,l,Object.getOwnPropertyDescriptor(n,l))})}return t}function fs(t,a){if(!(t instanceof a))throw new TypeError("Cannot call a class as a function")}function Xt(t,a){for(var n=0;n<a.length;n++){var l=a[n];l.enumerable=l.enumerable||!1,l.configurable=!0,"value"in l&&(l.writable=!0),Object.defineProperty(t,ma(l.key),l)}}function js(t,a,n){return a&&Xt(t.prototype,a),n&&Xt(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function Ps(t,a,n){return a=Xe(a),bs(t,oa()?Reflect.construct(a,n||[],Xe(t).constructor):a.apply(t,n))}function bs(t,a){if(a&&(Ie(a)==="object"||typeof a=="function"))return a;if(a!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return vs(t)}function vs(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function oa(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(oa=function(){return!!t})()}function Xe(t){return Xe=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Xe(t)}function Ns(t,a){if(typeof a!="function"&&a!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(a&&a.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),a&&Nt(t,a)}function Nt(t,a){return Nt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(l,r){return l.__proto__=r,l},Nt(t,a)}function xe(t,a,n){return a=ma(a),a in t?Object.defineProperty(t,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[a]=n,t}function ma(t){var a=Cs(t,"string");return Ie(a)=="symbol"?a:a+""}function Cs(t,a){if(Ie(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var l=n.call(t,a);if(Ie(l)!="object")return l;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}var Ke=(function(t){function a(){var n;fs(this,a);for(var l=arguments.length,r=new Array(l),d=0;d<l;d++)r[d]=arguments[d];return n=Ps(this,a,[].concat(r)),xe(n,"state",{isAnimationFinished:!1}),xe(n,"handleAnimationEnd",function(){var h=n.props.onAnimationEnd;n.setState({isAnimationFinished:!0}),He(h)&&h()}),xe(n,"handleAnimationStart",function(){var h=n.props.onAnimationStart;n.setState({isAnimationFinished:!1}),He(h)&&h()}),xe(n,"handleMouseEnter",function(h){var u=n.props.onMouseEnter;u&&u(n.props,h)}),xe(n,"handleMouseLeave",function(h){var u=n.props.onMouseLeave;u&&u(n.props,h)}),n}return Ns(a,t),js(a,[{key:"renderDots",value:function(l){var r=this.props,d=r.dot,h=r.dataKey,u=Te(this.props,!1),b=Te(d,!0),f=l.map(function(D,i){var j=B(B(B({key:"dot-".concat(i),r:3},u),b),{},{dataKey:h,cx:D.x,cy:D.y,index:i,payload:D});return a.renderDotItem(d,j)});return $.createElement(ut,{className:"recharts-radar-dots"},f)}},{key:"renderPolygonStatically",value:function(l){var r=this.props,d=r.shape,h=r.dot,u=r.isRange,b=r.baseLinePoints,f=r.connectNulls,D;return $.isValidElement(d)?D=$.cloneElement(d,B(B({},this.props),{},{points:l})):He(d)?D=d(B(B({},this.props),{},{points:l})):D=$.createElement(qa,Qe({},Te(this.props,!0),{onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,points:l,baseLinePoints:u?b:null,connectNulls:f})),$.createElement(ut,{className:"recharts-radar-polygon"},D,h?this.renderDots(l):null)}},{key:"renderPolygonWithAnimation",value:function(){var l=this,r=this.props,d=r.points,h=r.isAnimationActive,u=r.animationBegin,b=r.animationDuration,f=r.animationEasing,D=r.animationId,i=this.state.prevPoints;return $.createElement($a,{begin:u,duration:b,isActive:h,easing:f,from:{t:0},to:{t:1},key:"radar-".concat(D),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(j){var N=j.t,p=i&&i.length/d.length,P=d.map(function(o,s){var m=i&&i[Math.floor(s*p)];if(m){var x=Ue(m.x,o.x),v=Ue(m.y,o.y);return B(B({},o),{},{x:x(N),y:v(N)})}var S=Ue(o.cx,o.x),O=Ue(o.cy,o.y);return B(B({},o),{},{x:S(N),y:O(N)})});return l.renderPolygonStatically(P)})}},{key:"renderPolygon",value:function(){var l=this.props,r=l.points,d=l.isAnimationActive,h=l.isRange,u=this.state.prevPoints;return d&&r&&r.length&&!h&&(!u||!Oa(u,r))?this.renderPolygonWithAnimation():this.renderPolygonStatically(r)}},{key:"render",value:function(){var l=this.props,r=l.hide,d=l.className,h=l.points,u=l.isAnimationActive;if(r||!h||!h.length)return null;var b=this.state.isAnimationFinished,f=Je("recharts-radar",d);return $.createElement(ut,{className:f},this.renderPolygon(),(!u||b)&&La.renderCallByParent(this.props,h))}}],[{key:"getDerivedStateFromProps",value:function(l,r){return l.animationId!==r.prevAnimationId?{prevAnimationId:l.animationId,curPoints:l.points,prevPoints:r.curPoints}:l.points!==r.curPoints?{curPoints:l.points}:null}},{key:"renderDotItem",value:function(l,r){var d;if($.isValidElement(l))d=$.cloneElement(l,r);else if(He(l))d=l(r);else{var h=r.key,u=gs(r,us);d=$.createElement(Ra,Qe({},u,{key:h,className:Je("recharts-radar-dot",typeof l!="boolean"?l.className:"")}))}return d}}])})(T.PureComponent);xe(Ke,"displayName","Radar");xe(Ke,"defaultProps",{angleAxisId:0,radiusAxisId:0,hide:!1,activeDot:!0,dot:!1,legendT
6ype:"rect",isAnimationActive:!Ka.isSsr,animationBegin:0,animationDuration:1500,animationEasing:"ease"});xe(Ke,"getComposedData",function(t){var a=t.radiusAxis,n=t.angleAxis,l=t.displayedData,r=t.dataKey,d=t.bandSize,h=n.cx,u=n.cy,b=!1,f=[],D=n.type!=="number"?d??0:0;l.forEach(function(j,N){var p=_t(j,n.dataKey,N),P=_t(j,r),o=n.scale(p)+D,s=Array.isArray(P)?Fa(P):P,m=zt(s)?void 0:a.scale(s);Array.isArray(P)&&P.length>=2&&(b=!0),f.push(B(B({},Re(h,u,m,o)),{},{name:p,value:P,cx:h,cy:u,radius:m,angle:o,payload:j}))});var i=[];return b&&f.forEach(function(j){if(Array.isArray(j.value)){var N=ys(j.value),p=zt(N)?void 0:a.scale(N);i.push(B(B({},j),{},{radius:p},Re(h,u,p,j.angle)))}else i.push(j)}),{points:f,isRange:b,baseLinePoints:i}});var Ds=Ya({chartName:"RadarChart",GraphicalChild:Ke,axisComponents:[{axisType:"angleAxis",AxisComp:la},{axisType:"radiusAxis",AxisComp:ra}],formatAxisMap:_a,defaultProps:{layout:"centric",startAngle:90,endAngle:-270,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"}});function ee(t){return new Intl.NumberFormat("fr-FR",{style:"currency",currency:"EUR",maximumFractionDigits:0}).format(t)}function At(t){return t?new Date(t).toLocaleDateString("fr-FR",{day:"2-digit",month:"2-digit",year:"numeric"}):"â"}const Ze=["#3b82f6","#10b981","#f97316","#8b5cf6","#ec4899","#f59e0b","#06b6d4","#ef4444","#84cc16","#14b8a6"],Ss={Paris:"#3b82f6",Atlantique:"#10b981",Atlan:"#10b981",Provence:"#f97316",Prov:"#f97316",Méditerranée:"#8b5cf6",Med:"#8b5cf6",NSIT:"#ec4899"};function fe(t,a){return Ss[t]||Ze[a%Ze.length]}const We=["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"];function pe(t){return t===0?"bg-green-100 text-green-800 border-green-200":t<=30?"bg-blue-100 text-blue-800 border-blue-200":t<=45?"bg-amber-100 text-amber-800 border-amber-200":"bg-red-100 text-red-800 border-red-200"}function we(t){return t===null?"bg-gray-100 text-gray-600 border-gray-200":t<=-5?"bg-green-100 text-green-800 border-green-200":t<=5?"bg-blue-100 text-blue-800 border-blue-200":t<=15?"bg-amber-100 text-amber-800 border-amber-200":"bg-red-100 text-red-800 border-red-200"}function da(t){switch(t){case 0:return{label:"Brouillon",color:"bg-gray-100 text-gray-600"};case 1:return{label:"Envoyée",color:"bg-blue-100 text-blue-700"};case 3:return{label:"Payée",color:"bg-green-100 text-green-700"};case 7:return{label:"Partiel",color:"bg-amber-100 text-amber-700"};default:return{label:`Ãtat ${t}`,color:"bg-gray-100 text-gray-600"}}}function ie({current:t,previous:a,suffix:n="",inverse:l=!1}){if(a==null)return null;const r=t-a;if(r===0)return e.jsxs("span",{"data-loc":"client/src/pages/payments/VariationIndicator.tsx:17",className:"inline-flex items-center gap-0.5 text-xs text-muted-foreground",children:[e.jsx(Ma,{"data-loc":"client/src/pages/payments/VariationIndicator.tsx:18",className:"h-3 w-3"}),e.jsx("span",{"data-loc":"client/src/pages/payments/VariationIndicator.tsx:19",children:"="})]});const h=(l?r<0:r>0)?"text-green-600":"text-red-600",u=r>0?ke:ta;return e.jsxs(te,{"data-loc":"client/src/pages/payments/VariationIndicator.tsx:26",children:[e.jsx(ae,{"data-loc":"client/src/pages/payments/VariationIndicator.tsx:27",asChild:!0,children:e.jsxs("span",{"data-loc":"client/src/pages/payments/VariationIndicator.tsx:28",className:`inline-flex items-center gap-0.5 text-xs font-medium ${h}`,children:[e.jsx(u,{"data-loc":"client/src/pages/payments/VariationIndicator.tsx:29",className:"h-3 w-3"}),e.jsxs("span",{"data-loc":"client/src/pages/payments/VariationIndicator.tsx:30",children:[r>0?"+":"",r,n]})]})}),e.jsx(se,{"data-loc":"client/src/pages/payments/VariationIndicator.tsx:33",children:e.jsxs("p",{"data-loc":"client/src/pages/payments/VariationIndicator.tsx:34",className:"text-xs",children:["N-1 : ",a,n]})})]})}function As({data:t,prevData:a,search:n,selectedYear:l,showDegradedOnly:r}){const[d,h]=T.useState("totalAmount"),[u,b]=T.useState("desc"),[f,D]=T.useState(new Set),i=o=>{d===o?b(u==="asc"?"desc":"asc"):(h(o),b("desc"))},j=({field:o})=>d!==o?e.jsx(et,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:51",className:"h-3.5 w-3.5 ml-1 opacity-40"}):u==="asc"?e.jsx(tt,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:53",className:"h-3.5 w-3.5 ml-1 text-primary"}):e.jsx(at,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:54",className:"h-3.5 w-3.5 ml-1 text-primary"}),N=T.useMemo(()=>{const o=new Map;if(a?.clients)for(const s of a.clients)o.set(s.clientName,s);return o},[a]),p=T.useMemo(()=>
6{if(!t?.clients)return[];let o=t.clients;if(n){const s=n.toLowerCase();o=o.filter(m=>m.clientName.toLowerCase().includes(s)||m.orders.some(x=>x.projectName.toLowerCase().includes(s)))}return r&&a?.clients&&(o=o.filter(s=>{const m=N.get(s.clientName);return m?s.avgPaymentDays>m.avgPaymentDays:!1})),o=[...o].sort((s,m)=>{let x,v;switch(d){case"name":x=s.clientName,v=m.clientName;break;case"count":x=s.orderCount,v=m.orderCount;break;case"avgDays":x=s.avgPaymentDays,v=m.avgPaymentDays;break;case"dominantTerm":x=s.dominantPaymentTerm,v=m.dominantPaymentTerm;break;case"totalAmount":x=s.totalOrdered,v=m.totalOrdered;break;default:x=0,v=0}return typeof x=="string"?u==="asc"?x.localeCompare(v):v.localeCompare(x):u==="asc"?x-v:v-x}),o},[t,n,d,u,r,N]),P=o=>{D(s=>{const m=new Set(s);return m.has(o)?m.delete(o):m.add(o),m})};return!t||p.length===0?e.jsxs("div",{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:115",className:"flex flex-col items-center justify-center py-12 text-muted-foreground",children:[e.jsx(aa,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:116",className:"h-12 w-12 mb-4 opacity-30"}),e.jsx("p",{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:117",className:"text-sm",children:"Aucune commande trouvée pour cette période"})]}):e.jsx("div",{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:123",className:"overflow-x-auto",children:e.jsxs(ve,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:124",children:[e.jsx(Ne,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:125",children:e.jsxs(F,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:126",className:"bg-muted/50",children:[e.jsx(C,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:127",className:"w-8"}),e.jsx(C,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:128",children:e.jsxs("button",{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:129",onClick:()=>i("name"),className:"flex items-center font-semibold hover:text-primary transition-colors",children:["Client ",e.jsx(j,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:130",field:"name"})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:133",className:"text-center",children:e.jsxs("button",{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:134",onClick:()=>i("count"),className:"flex items-center font-semibold hover:text-primary transition-colors mx-auto",children:["Commandes ",e.jsx(j,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:135",field:"count"})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:138",className:"text-center",children:e.jsxs("button",{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:139",onClick:()=>i("avgDays"),className:"flex items-center font-semibold hover:text-primary transition-colors mx-auto",children:["Délai moyen ",e.jsx(j,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:140",field:"avgDays"})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:143",children:e.jsxs("button",{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:144",onClick:()=>i("dominantTerm"),className:"flex items-center font-semibold hover:text-primary transition-colors",children:["Condition principale ",e.jsx(j,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:145",field:"dominantTerm"})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:148",className:"text-right",children:e.jsxs("button",{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:149",onClick:()=>i("totalAmount"),className:"flex items-center font-semibold hover:text-primary transition-colors ml-auto",children:["CA commandé ",e.jsx(j,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:150",field:"totalAmount"})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:153",className:"text-right",children:"CA facturé"})]})}),e.jsx(Ce,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:156",children:p.map(o=>{const s=f.has(o.clientName),m=N.get(o.clientName);return e.jsxs($.Fragment,{children:[e.jsxs(F,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:162",className:"cursor-pointer hover:bg-muted/30 transition-colors",onClick:()=>P(o.clientName),children:[e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:163",className:"w-8 px-2",children:s?e.jsx(ea,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:164",className:"h-4 w-4 text-muted-foreground"}):e.jsx(sa,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:164",className:"h-4 w-4 text-muted-foreground"})}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:166",className:"font-medium",children:o.clientName}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:167",className:"text-center",children:e.jsxs("div",{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:168",className:"flex items-center justify-center gap-1.5",children:[e.jsx(k,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:169",variant:"secondary",className:"font-mono",children:o.orderCount}),e.jsx(ie,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:170",current:o.orderCount,previous:m?.orderCount})]})}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:173",className:"text-center",children:e.jsxs("div",{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:174",className:"flex items-center justify-center gap-1.5",children:[e.jsxs(k,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:175",className:`${pe(o.avgPaymentDays)} border font-mono`,children:[o.avgPaymentDays,"j"]}),e.jsx(ie,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:178",current:o.avgPaymentDays,previous:m?.avgPaymentDays,suffix:"j",inverse:!0})]})}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:181",children:e.jsx("span",{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:182",className:"text-sm",children:o.dominantPaymentTerm})}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:184",className:"text-right font-mono font-medium",children:ee(o.totalOrdered)}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:187",className:"text-right font-mono text-muted-foreground",children:ee(o.totalInvoiced)})]}),s&&o.orders.map(x=>e.jsxs(F,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:192",className:"bg-muted/10 text-sm",children:[e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:193"}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:194",className:"pl-8 text-muted-foreground",children:e.jsxs("div",{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:195",className:"flex flex-col",children:[e.jsx("span",{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:196",className:"font-medium text-foreground",children:x.projectName}),e.jsxs("span",{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:197",className:"text-xs",children:[x.orderNumber?`Cmd #${x.orderNumber}`:`#${x.orderId}`," · ",At(x.orderDate)]})]})}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:204",className:"text-center",children:e.jsx(k,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:205",variant:"outline",className:"text-xs",children:x.perimetreName})}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:207",className:"text-center",children:e.jsxs(k,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:208",className:`${pe(
6x.paymentTermDays)} border text-xs font-mono`,children:[x.paymentTermDays,"j"]})}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:212",className:"text-sm text-muted-foreground",children:x.paymentTermLabel}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:215",className:"text-right font-mono text-sm",children:ee(x.amountOrdered)}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentTable.tsx:218",className:"text-right font-mono text-sm text-muted-foreground",children:ee(x.amountInvoiced)})]},x.orderId))]},o.clientName)})})]})})}function Ts({data:t,prevData:a,search:n,selectedYear:l,showDegradedOnly:r}){const[d,h]=T.useState("totalAmount"),[u,b]=T.useState("desc"),[f,D]=T.useState(new Set),i=o=>{d===o?b(u==="asc"?"desc":"asc"):(h(o),b("desc"))},j=({field:o})=>d!==o?e.jsx(et,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:51",className:"h-3.5 w-3.5 ml-1 opacity-40"}):u==="asc"?e.jsx(tt,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:53",className:"h-3.5 w-3.5 ml-1 text-primary"}):e.jsx(at,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:54",className:"h-3.5 w-3.5 ml-1 text-primary"}),N=T.useMemo(()=>{const o=new Map;if(a?.suppliers)for(const s of a.suppliers)o.set(s.supplierName,s);return o},[a]),p=T.useMemo(()=>{if(!t?.suppliers)return[];let o=t.suppliers;if(n){const s=n.toLowerCase();o=o.filter(m=>m.supplierName.toLowerCase().includes(s)||m.purchases.some(x=>x.purchaseTitle.toLowerCase().includes(s)))}return r&&a?.suppliers&&(o=o.filter(s=>{const m=N.get(s.supplierName);return m?s.avgPaymentDays>m.avgPaymentDays:!1})),o=[...o].sort((s,m)=>{let x,v;switch(d){case"name":x=s.supplierName,v=m.supplierName;break;case"count":x=s.purchaseCount,v=m.purchaseCount;break;case"avgDays":x=s.avgPaymentDays,v=m.avgPaymentDays;break;case"dominantTerm":x=s.dominantPaymentTerm,v=m.dominantPaymentTerm;break;case"totalAmount":x=s.totalAmount,v=m.totalAmount;break;default:x=0,v=0}return typeof x=="string"?u==="asc"?x.localeCompare(v):v.localeCompare(x):u==="asc"?x-v:v-x}),o},[t,n,d,u,r,N]),P=o=>{D(s=>{const m=new Set(s);return m.has(o)?m.delete(o):m.add(o),m})};return!t||p.length===0?e.jsxs("div",{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:115",className:"flex flex-col items-center justify-center py-12 text-muted-foreground",children:[e.jsx(aa,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:116",className:"h-12 w-12 mb-4 opacity-30"}),e.jsx("p",{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:117",className:"text-sm",children:"Aucun achat trouvé pour cette période"})]}):e.jsx("div",{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:123",className:"overflow-x-auto",children:e.jsxs(ve,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:124",children:[e.jsx(Ne,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:125",children:e.jsxs(F,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:126",className:"bg-muted/50",children:[e.jsx(C,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:127",className:"w-8"}),e.jsx(C,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:128",children:e.jsxs("button",{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:129",onClick:()=>i("name"),className:"flex items-center font-semibold hover:text-primary transition-colors",children:["Fournisseur ",e.jsx(j,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:130",field:"name"})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:133",className:"text-center",children:e.jsxs("button",{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:134",onClick:()=>i("count"),className:"flex items-center font-semibold hover:text-primary transition-colors mx-auto",children:["Achats ",e.jsx(j,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:135",field:"count"})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:138",className:"text-center",children:e.jsxs("button",{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:139",onClick:()=>i("avgDays"),className:"flex items-center font-semibold hover:text-primary transition-colors mx-auto",children:["Délai moyen ",e.jsx(j,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:140",field:"avgDays"})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:143",children:e.jsxs("button",{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:144",onClick:()=>i("dominantTerm"),className:"flex items-center font-semibold hover:text-primary transition-colors",children:["Condition principale ",e.jsx(j,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:145",field:"dominantTerm"})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:148",className:"text-right",children:e.jsxs("button",{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:149",onClick:()=>i("totalAmount"),className:"flex items-center font-semibold hover:text-primary transition-colors ml-auto",children:["Montant total HT ",e.jsx(j,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:150",field:"totalAmount"})]})})]})}),e.jsx(Ce,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:155",children:p.map(o=>{const s=f.has(o.supplierName),m=N.get(o.supplierName);return e.jsxs($.Fragment,{children:[e.jsxs(F,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:161",className:"cursor-pointer hover:bg-muted/30 transition-colors",onClick:()=>P(o.supplierName),children:[e.jsx(y,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:162",className:"w-8 px-2",children:s?e.jsx(ea,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:163",className:"h-4 w-4 text-muted-foreground"}):e.jsx(sa,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:163",className:"h-4 w-4 text-muted-foreground"})}),e.jsx(y,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:165",className:"font-medium",children:o.supplierName}),e.jsx(y,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:166",className:"text-center",children:e.jsxs("div",{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:167",className:"flex items-center justify-center gap-1.5",children:[e.jsx(k,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:168",variant:"secondary",className:"font-mono",children:o.purchaseCount}),e.jsx(ie,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:169",current:o.purchaseCount,previous:m?.purchaseCount})]})}),e.jsx(y,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:172",className:"text-center",children:e.jsxs("div",{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:173",className:"flex items-center justify-center gap-1.5",children:[e.jsxs(k,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:174",className:`${pe(o.avgPaymentDays)} border font-mono`,children:[o.avgPaymentDays,"j"]}),e.jsx(ie,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:177",current:o.avgPaymentDays,previous:m?.avgPaymentDays,suffix:"j",inverse:!0})]})}),e.jsx(y,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:180",children:e.jsx("span",{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:181",className:"text-sm",children:o.dominantPaymentTerm})}),e.jsx(y,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:183",className:"text-right font-mono font-medium",children:ee(o.totalAmount)})]}),s&&o.purchases.map(x=>e.jsxs(F,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:188",className:"bg-muted/10 text-sm",children:[e.jsx(y,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:189"}),e.jsx(y,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:190",className:"pl-8 text-muted-foreground",children:e.jsxs("div",{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:191",className:"flex flex-col",children:[e.jsx("span",{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:192",className:"font-medium text-foreground",children:x.purchaseTitle}),e.jsxs("span",{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:193",className:"text-xs",children:[x.reference?`Réf: ${x.reference}`:`#${x.purchaseId}`," · ",At(x.purchaseDate)]})]})}),e.jsx(y,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:200",className:"text-center",children:e.jsx(k,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:201",variant:"outline",className:"text-xs",children:x.perimetreName})}),e.jsx(y,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:203",className:"text-center",children:e.jsxs(k,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:204",className:`${pe(
6x.paymentTermDays)} border text-xs font-mono`,children:[x.paymentTermDays,"j"]})}),e.jsx(y,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:208",className:"text-sm text-muted-foreground",children:x.paymentTermLabel}),e.jsx(y,{"data-loc":"client/src/pages/payments/SupplierPaymentTable.tsx:211",className:"text-right font-mono text-sm",children:ee(x.totalAmountHT)})]},x.purchaseId))]},o.supplierName)})})]})})}function ws({clientData:t,supplierData:a,prevClientData:n,prevSupplierData:l,isLoading:r,selectedYear:d}){if(r)return e.jsx("div",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:23",className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[...Array(4)].map((v,S)=>e.jsx(L,{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:25",className:"animate-pulse",children:e.jsxs(K,{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:26",className:"p-4",children:[e.jsx("div",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:27",className:"h-4 bg-muted rounded w-24 mb-2"}),e.jsx("div",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:28",className:"h-8 bg-muted rounded w-16"})]})},S))});const h=t?.clients?.length||0,u=t?.filteredOrders||0,b=h>0?Math.round(t.clients.reduce((v,S)=>v+S.avgPaymentDays,0)/h):0,f=t?.clients?.reduce((v,S)=>v+S.totalOrdered,0)||0,D=a?.suppliers?.length||0,i=a?.filteredPurchases||0,j=D>0?Math.round(a.suppliers.reduce((v,S)=>v+S.avgPaymentDays,0)/D):0,N=a?.suppliers?.reduce((v,S)=>v+S.totalAmount,0)||0,p=n?.clients?.length||0,P=p>0?Math.round(n.clients.reduce((v,S)=>v+S.avgPaymentDays,0)/p):null,o=l?.suppliers?.length||0,s=o>0?Math.round(l.suppliers.reduce((v,S)=>v+S.avgPaymentDays,0)/o):null,m=n?.filteredOrders||null,x=l?.filteredPurchases||null;return e.jsxs("div",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:63",className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[e.jsx(L,{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:64",children:e.jsxs(K,{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:65",className:"p-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:66",className:"flex items-center gap-2 text-muted-foreground text-sm mb-1",children:[e.jsx(jt,{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:67",className:"h-4 w-4"}),e.jsx("span",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:68",children:"Clients"})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:70",className:"flex items-center gap-2",children:[e.jsx("div",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:71",className:"text-2xl font-bold",children:h}),e.jsx(ie,{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:72",current:h,previous:p||null})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:74",className:"text-xs text-muted-foreground flex items-center gap-1",children:[u," commandes",m!==null&&e.jsx(ie,{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:76",current:u,previous:m})]})]})}),e.jsx(L,{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:80",children:e.jsxs(K,{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:81",className:"p-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:82",className:"flex items-center gap-2 text-muted-foreground text-sm mb-1",children:[e.jsx($t,{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:83",className:"h-4 w-4"}),e.jsx("span",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:84",children:"Délai client moyen"})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:86",className:"flex items-center gap-2",children:[e.jsx("div",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:87",className:"text-2xl font-bold",children:e.jsxs("span",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:88",className:b>45?"text-red-600":b>30?"text-amber-600":"text-green-600",children:[b,"j"]})}),e.jsx(ie,{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:92",current:b,previous:P,suffix:"j",inverse:!0})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:94",className:"text-xs text-muted-foreground",children:[ee(f)," commandé"]})]})}),e.jsx(L,{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:97",children:e.jsxs(K,{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:98",className:"p-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:99",className:"flex items-center gap-2 text-muted-foreground text-sm mb-1",children:[e.jsx(Pt,{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:100",className:"h-4 w-4"}),e.jsx("span",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:101",children:"Fournisseurs"})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:103",className:"flex items-center gap-2",children:[e.jsx("div",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:104",className:"text-2xl font-bold",children:D}),e.jsx(ie,{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:105",current:D,previous:o||null})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:107",className:"text-xs text-muted-foreground flex items-center gap-1",children:[i," achats",x!==null&&e.jsx(ie,{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:109",current:i,previous:x})]})]})}),e.jsx(L,{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:113",children:e.jsxs(K,{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:114",className:"p-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:115",className:"flex items-center gap-2 text-muted-foreground text-sm mb-1",children:[e.jsx($t,{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:116",className:"h-4 w-4"}),e.jsx("span",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:117",children:"Délai fournisseur moyen"})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:119",className:"flex items-center gap-2",children:[e.jsx("div",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:120",className:"text-2xl font-bold",children:e.jsxs("span",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:121",className:j>45?"text-red-600":j>30?"text-amber-600":"text-green-600",children:[j,"j"]})}),e.jsx(ie,{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:125",current:j,previous:s,suffix:"j",inverse:!0})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/PaymentKPIs.tsx:127",className:"text-xs text-muted-foreground",children:[ee(N)," acheté"]})]})})]})}function ks({clientByPerimetre:t,supplierByPerimetre:a,activeTab:n}){const{theme:l}=be(),r=l==="dark"||l==="system"&&window.matchMedia("(prefers-color-scheme: dark)").matches,d=n==="clients"?t:a;if(!d||d.length===0)return null;const h=d.map((u,b)=>({name:u.perimetreName,count:n==="clients"?u.orderCount:u.purchaseCount,avgDays:u.avgDays,total:n==="clients"?u.totalOrdered:u.totalAmount,fill:Ze[b%Ze.length]}));return e.jsxs("div",{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:33",className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs(L,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:34",children:[e.jsx(me,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:35",className:"pb-2",children:e.jsxs(de,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:36",className:"text-sm font-medium text-muted-foreground",children:["Répartition par périmètre (",n==="clients"?"commandes":"achats",")"]})}),e.jsx(K,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:40",children:e.jsx("div",{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:41",className:"h-[250px]",children:e.jsx(U,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:42",children:e.jsx(W,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:42",width:"100%",height:"100%",children:e.jsxs(Pe,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:43",data:h,layout:"vertical",margin:{left:10,right:20},children:[e.jsx(ne,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:44",strokeDasharray:"3 3",stroke:r?"#334155":"#e5e7eb",opacity:.3}),e.jsx(le,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:45",type:"number",tick:{fontSize:11}}),e.jsx(Z,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:4
66",type:"category",dataKey:"name",tick:{fontSize:11},width:120}),e.jsx(G,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:47",contentStyle:{backgroundColor:r?"#1e293b":"white",color:r?"#e2e8f0":"#111",borderColor:r?"#334155":"#e5e7eb",border:"1px solid #e5e7eb",borderRadius:"8px",boxShadow:"0 4px 6px -1px rgba(0,0,0,0.1)"},formatter:u=>[u,n==="clients"?"Commandes":"Achats"]}),e.jsx(re,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:56",dataKey:"count",radius:[0,4,4,0],children:h.map((u,b)=>e.jsx($e,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:58",fill:u.fill},`cell-${b}`))})]})})})})})]}),e.jsxs(L,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:66",children:[e.jsx(me,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:67",className:"pb-2",children:e.jsx(de,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:68",className:"text-sm font-medium text-muted-foreground",children:"Délai moyen par périmètre (jours)"})}),e.jsx(K,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:72",children:e.jsx("div",{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:73",className:"h-[250px]",children:e.jsx(U,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:74",children:e.jsx(W,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:74",width:"100%",height:"100%",children:e.jsxs(Pe,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:75",data:h,layout:"vertical",margin:{left:10,right:20},children:[e.jsx(ne,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:76",strokeDasharray:"3 3",stroke:r?"#334155":"#e5e7eb",opacity:.3}),e.jsx(le,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:77",type:"number",tick:{fontSize:11}}),e.jsx(Z,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:78",type:"category",dataKey:"name",tick:{fontSize:11},width:120}),e.jsx(G,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:79",contentStyle:{backgroundColor:r?"#1e293b":"white",color:r?"#e2e8f0":"#111",borderColor:r?"#334155":"#e5e7eb",border:"1px solid #e5e7eb",borderRadius:"8px",boxShadow:"0 4px 6px -1px rgba(0,0,0,0.1)"},formatter:u=>[`${u} jours`,"Délai moyen"]}),e.jsx(re,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:88",dataKey:"avgDays",radius:[0,4,4,0],children:h.map((u,b)=>e.jsx($e,{"data-loc":"client/src/pages/payments/PerimetreDistributionChart.tsx:90",fill:u.avgDays>45?"#ef4444":u.avgDays>30?"#f59e0b":"#10b981"},`cell-${b}`))})]})})})})})]})]})}function Is({clientEvolution:t,supplierEvolution:a,activeTab:n,year:l}){const{theme:r}=be(),d=r==="dark"||r==="system"&&window.matchMedia("(prefers-color-scheme: dark)").matches,h=t||[],u=a||[];if(h.length===0&&u.length===0)return null;const f=["Jan","Fév","Mar","Avr","Mai","Juin","Juil","Août","Sep","Oct","Nov","Déc"].map((D,i)=>{const j=h.find(p=>p.monthNum===i+1),N=u.find(p=>p.monthNum===i+1);return{month:D,clientAvgDays:j?.avgDays??null,supplierAvgDays:N?.avgDays??null,clientCount:j?.count??0,supplierCount:N?.count??0}}).filter(D=>D.clientAvgDays!==null||D.supplierAvgDays!==null);return f.length===0?null:e.jsxs(L,{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:45",children:[e.jsx(me,{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:46",className:"pb-2",children:e.jsxs(de,{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:47",className:"text-sm font-medium text-muted-foreground flex items-center gap-2",children:[e.jsx(ke,{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:48",className:"h-4 w-4"}),"Ãvolution des délais moyens de paiement â ",l]})}),e.jsx(K,{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:52",children:e.jsx("div",{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:53",className:"h-[280px]",children:e.jsx(U,{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:54",children:e.jsx(W,{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:54",width:"100%",height:"100%",children:e.jsxs(za,{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:55",data:f,margin:{left:0,right:20,top:10,bottom:0},children:[e.jsxs("defs",{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:56",children:[e.jsxs("linearGradient",{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:57",id:"clientGradient",x1:"0",y1:"0",x2:"0",y2:"1",children:[e.jsx("stop",{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:58",offset:"5%",
6stopColor:"#3b82f6",stopOpacity:.2}),e.jsx("stop",{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:59",offset:"95%",stopColor:"#3b82f6",stopOpacity:0})]}),e.jsxs("linearGradient",{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:61",id:"supplierGradient",x1:"0",y1:"0",x2:"0",y2:"1",children:[e.jsx("stop",{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:62",offset:"5%",stopColor:"#f97316",stopOpacity:.2}),e.jsx("stop",{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:63",offset:"95%",stopColor:"#f97316",stopOpacity:0})]})]}),e.jsx(ne,{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:66",strokeDasharray:"3 3",stroke:d?"#334155":"#e5e7eb",opacity:.3}),e.jsx(le,{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:67",dataKey:"month",tick:{fontSize:11}}),e.jsx(Z,{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:68",tick:{fontSize:11},label:{value:"Jours",angle:-90,position:"insideLeft",style:{fontSize:11}}}),e.jsx(G,{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:69",contentStyle:{backgroundColor:d?"#1e293b":"white",color:d?"#e2e8f0":"#111",borderColor:d?"#334155":"#e5e7eb",border:"1px solid #e5e7eb",borderRadius:"8px",boxShadow:"0 4px 6px -1px rgba(0,0,0,0.1)"},formatter:(D,i)=>{const j=i==="clientAvgDays"?"Clients":"Fournisseurs";return D!==null?[`${D} jours`,j]:["-",j]}}),e.jsx(je,{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:81",formatter:D=>D==="clientAvgDays"?"Clients":"Fournisseurs"}),e.jsx(qt,{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:84",type:"monotone",dataKey:"clientAvgDays",stroke:"#3b82f6",strokeWidth:2,fill:"url(#clientGradient)",connectNulls:!0,dot:{r:4,fill:"#3b82f6"}}),e.jsx(qt,{"data-loc":"client/src/pages/payments/PaymentEvolutionChart.tsx:93",type:"monotone",dataKey:"supplierAvgDays",stroke:"#f97316",strokeWidth:2,fill:"url(#supplierGradient)",connectNulls:!0,dot:{r:4,fill:"#f97316"}})]})})})})})]})}function Es({clientData:t,supplierData:a,prevClientData:n,prevSupplierData:l,activeTab:r,selectedYear:d}){const{theme:h}=be(),u=h==="dark"||h==="system"&&window.matchMedia("(prefers-color-scheme: dark)").matches,b=d-1,f=T.useMemo(()=>{const s=r==="clients"?t?.byPerimetre||[]:a?.byPerimetre||[],m=r==="clients"?n?.byPerimetre||[]:l?.byPerimetre||[],x=new Map;for(const S of m)x.set(S.perimetreName,S);const v=new Set;for(const S of s)v.add(S.perimetreName);for(const S of m)v.add(S.perimetreName);return Array.from(v).map(S=>{const O=s.find(ge=>ge.perimetreName===S),Y=x.get(S);return{name:S,currentDays:O?.avgDays??0,prevDays:Y?.avgDays??0,currentCount:r==="clients"?O?.orderCount??0:O?.purchaseCount??0,prevCount:r==="clients"?Y?.orderCount??0:Y?.purchaseCount??0,currentTotal:r==="clients"?O?.totalOrdered??0:O?.totalAmount??0,prevTotal:r==="clients"?Y?.totalOrdered??0:Y?.totalAmount??0}}).sort((S,O)=>O.currentTotal-S.currentTotal)},[t,a,n,l,r]);if(f.length===0)return null;const D=f.reduce((s,m)=>s+m.currentDays*m.currentCount,0),i=f.reduce((s,m)=>s+m.currentCount,0),j=f.reduce((s,m)=>s+m.prevDays*m.prevCount,0),N=f.reduce((s,m)=>s+m.prevCount,0),p=i>0?Math.round(D/i):0,P=N>0?Math.round(j/N):0,o=p-P;return e.jsxs(L,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:81",children:[e.jsxs(me,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:82",className:"pb-2",children:[e.jsxs(de,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:83",className:"text-sm font-medium text-muted-foreground flex items-center gap-2",children:[e.jsx(wa,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:84",className:"h-4 w-4"}),"Comparatif ",d," vs ",b," â Délais ",r==="clients"?"clients":"fournisseurs"," par périmètre"]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:87",className:"mt-2 flex flex-wrap items-center gap-2",children:[e.jsxs(k,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:88",variant:"outline",className:"text-xs font-normal",children:["Moyenne ",d," : ",e.jsxs("span",{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:89",className:"font-bold ml-1",children:[p,"j"]})]}),e.jsxs(k,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:91",variant:"outline",className:"text-xs font-normal",children:["Moyenne ",b," : ",e.jsxs("span",{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:92",className:"font-bold ml-1",children:[P,"j"]})]}),o!==0&&e.jsxs(k,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:95",className:`text-xs ${o<0?"bg-green-100 text-green-800 border-green-200":"bg-red-100 text-red-800 border-red-200"} border`,children:[o>0?"+":"",o,"j (",o<0?"amélioration":"dégradation",")"]})]})]}),e.jsx(K,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:101",children:e.jsxs("div",{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:102",className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[e.jsx("div",{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:104",className:"h-[300px]",children:e.jsx(U,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:105",children:e.jsx(W,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:105",width:"100%",height:"100%",children:e.jsxs(Pe,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:106",data:f,margin:{left:10,right:20,top:10,bottom:0},children:[e.jsx(ne,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:107",strokeDasharray:"3 3",stroke:u?"#334155":"#e5e7eb",opacity:.3}),e.jsx(le,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:108",dataKey:"name",tick:{fontSize:10},angle:-20,textAnchor:"end",height:50}),e.jsx(Z,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:109",tick:{fontSize:11},label:{value:"Jours",angle:-90,position:"insideLeft",style:{fontSize:11}}}),e.jsx(G,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:110",contentStyle:{backgroundColor:u?"#1e293b":"white",color:u?"#e2e8f0":"#111",borderColor:u?"#334155":"#e5e7eb",border:"1px solid #e5e7eb",borderRadius:"8px",boxShadow:"0 4px 6px -1px rgba(0,0,0,0.1)"},formatter:(s,m)=>{const x=m==="currentDays"?`${d}`:`${b}`;return[`${s} jours`,x]}}),e.jsx(je,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:122",formatter:s=>s==="currentDays"?`${d}`:`${b}`}),e.jsx(re,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:125",dataKey:"currentDays",fill:"#3b82f6",radius:[4,4,0,0],barSize:20}),e.jsx(re,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:126",dataKey:"prevDays",fill:"#94a3b8",radius:[4,4,0,0],barSize:20})]})})})}),e.jsx("div",{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:132",className:"overflow-x-auto",children:e.jsxs(ve,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:133",children:[e.jsx(Ne,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:134",children:e.jsxs(F,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:135",className:"bg-muted/50",children:[e.jsx(C,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:136",className:"text-xs",children:"Périmètre"}),e.jsx(C,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:137",className:"text-xs text-center",children:d}),e.jsx(C,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:138",className:"text-xs text-center",children:b}),e.jsx(C,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:139",className:"text-xs text-center",children:"Ãcart"})]})}),e.jsxs(Ce,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:142",children:[f.map(s=>{const m=s.currentDays-s.prevDays;return e.jsxs(F,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:14
66",children:[e.jsx(y,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:147",className:"text-sm font-medium py-2",children:s.name}),e.jsxs(y,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:148",className:"text-center py-2",children:[e.jsxs(k,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:149",className:`${pe(s.currentDays)} border text-xs font-mono`,children:[s.currentDays,"j"]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:152",className:"text-[10px] text-muted-foreground mt-0.5",children:[s.currentCount," ",r==="clients"?"cmd":"achats"]})]}),e.jsxs(y,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:156",className:"text-center py-2",children:[e.jsxs(k,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:157",className:`${pe(s.prevDays)} border text-xs font-mono`,children:[s.prevDays,"j"]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:160",className:"text-[10px] text-muted-foreground mt-0.5",children:[s.prevCount," ",r==="clients"?"cmd":"achats"]})]}),e.jsx(y,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:164",className:"text-center py-2",children:m===0?e.jsx("span",{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:166",className:"text-xs text-muted-foreground",children:"="}):e.jsxs("span",{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:168",className:`text-xs font-bold ${m<0?"text-green-600":"text-red-600"}`,children:[m>0?"+":"",m,"j"]})})]},s.name)}),e.jsxs(F,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:177",className:"bg-muted/30 font-bold",children:[e.jsx(y,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:178",className:"text-sm py-2",children:"Total"}),e.jsxs(y,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:179",className:"text-center py-2",children:[e.jsxs(k,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:180",className:`${pe(p)} border text-xs font-mono font-bold`,children:[p,"j"]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:183",className:"text-[10px] text-muted-foreground mt-0.5",children:[i," ",r==="clients"?"cmd":"achats"]})]}),e.jsxs(y,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:187",className:"text-center py-2",children:[e.jsxs(k,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:188",className:`${pe(P)} border text-xs font-mono font-bold`,children:[P,"j"]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:191",className:"text-[10px] text-muted-foreground mt-0.5",children:[N," ",r==="clients"?"cmd":"achats"]})]}),e.jsx(y,{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:195",className:"text-center py-2",children:o===0?e.jsx("span",{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:197",className:"text-xs text-muted-foreground",children:"="}):e.jsxs("span",{"data-loc":"client/src/pages/payments/YearComparisonChart.tsx:199",className:`text-xs font-bold ${o<0?"text-green-600":"text-red-600"}`,children:[o>0?"+":"",o,"j"]})})]})]})]})})]})})]})}function Ms(t,a){if(t===null||a===null)return{label:"N/A",color:"bg-gray-100 text-gray-600 border-gray-200",score:0};const n=t*.6+Math.max(0,a)*1.5;return n>=80?{label:"Critique",color:"bg-red-100 text-red-800 border-red-300",score:n}:n>=50?{label:"Ãlevé",color:"bg-orange-100 text-orange-800 border-orange-300",score:n}:n>=25?{label:"Modéré",color:"bg-amber-100 text-amber-800 border-amber-300",score:n}:n>0?{label:"Faible",color:"bg-blue-100 text-blue-800 border-blue-300",score:n}:{label:"Bon payeur",color:"bg-green-100 text-green-800 border-green-300",score:0}}function xa({clientStats:t}){const{theme:a}=be(),n=a==="dark"||a==="system"&&window.matchMedia("(prefers-color-scheme: dark)").matches,[l,r]=T.useState("lateRate"),[d,h]=T.useState("desc"),[u,b]=T.useState(!1),f=s=>{l===s?h(d==="asc"?"desc":"asc"):(r(s),h("desc"))},D=({field:s})=>l!==s?e.jsx(et,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:51",className:"h-3.5 w-3.5 ml-1 opacity-40"}):d==="asc"?e.jsx(tt,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:53",className:"h-3.5 w-3.5 ml-1 text-primary"}):e.jsx(at,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:54",className:"h-3.5 w-3.5 ml-1 text-primary"}),i=T.useMemo(()=>t.map(s=>{const m=Ms(s.lateRate,s.avgDelta);return{...s,risk:m}}),[t]),j=T.useMemo(()=>{let s=[...i];return u&&(s=s.filter(m=>m.risk.score>=25)),s.sort((m,x)=>{let v,S;switch(l){case"client":v=m.clientName,S=x.clientName;break;case"lateRate":v=m.lateRate??-1,S=x.lateRate??-1;break;case"avgDelta":v=m.avgDelta??-999,S=x.avgDelta??-999;break;case"maxDelta":v=m.maxDelta??-999,S=x.maxDelta??-999;break;case"amount":v=m.totalAmount,S=x.totalAmount;break;case"invoices":v=m.invoiceCount,S=x.invoiceCount;break;default:v=m.risk.score,S=x.risk.score}return typeof v=="string"?d==="asc"?v.localeCompare(S):S.localeCompare(v):d==="asc"?v-S:S-v}),s},[i,l,d,u]),N=T.useMemo(()=>{const s={Critique:0,Ãlevé:0,Modéré:0,Faible:0,"Bon payeur":0};
6return i.forEach(m=>{s[m.risk.label]!==void 0&&s[m.risk.label]++}),[{name:"Critique",value:s.Critique,color:"#ef4444"},{name:"Ãlevé",value:s.Ãlevé,color:"#f97316"},{name:"Modéré",value:s.Modéré,color:"#f59e0b"},{name:"Faible",value:s.Faible,color:"#3b82f6"},{name:"Bon payeur",value:s["Bon payeur"],color:"#22c55e"}].filter(m=>m.value>0)},[i]),p=T.useMemo(()=>[...i].filter(s=>s.lateRate!==null&&s.avgDelta!==null).sort((s,m)=>m.risk.score-s.risk.score).slice(0,8).map(s=>({name:s.clientName.length>20?s.clientName.substring(0,20)+"...":s.clientName,fullName:s.clientName,lateRate:s.lateRate||0,avgDelta:Math.max(0,s.avgDelta||0)})),[i]),P=i.filter(s=>s.risk.score>=25).length,o=i.filter(s=>s.risk.label==="Critique").length;return e.jsxs("div",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:119",className:"space-y-4 px-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:120",className:"flex flex-col items-stretch gap-2 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:121",className:"flex min-w-0 flex-wrap items-center gap-2 sm:gap-3",children:[e.jsxs("h4",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:122",className:"flex min-w-0 items-center gap-2 break-words text-sm font-semibold [overflow-wrap:anywhere]",children:[e.jsx(na,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:123",className:"h-4 w-4 shrink-0"}),"Synthèse par client â Identification des mauvais payeurs"]}),e.jsxs(k,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:126",variant:"outline",className:"text-xs",children:[i.length," clients"]}),P>0&&e.jsxs(k,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:128",variant:"outline",className:"text-xs bg-amber-100 text-amber-800 border-amber-300",children:[e.jsx(Bt,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:129",className:"h-3 w-3 mr-1"}),P," à risque"]}),o>0&&e.jsxs(k,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:134",variant:"outline",className:"text-xs bg-red-100 text-red-800 border-red-300",children:[e.jsx(Ct,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:135",className:"h-3 w-3 mr-1"}),o," critique",o>1?"s":""]})]}),e.jsxs(V,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:140",variant:u?"default":"outline",size:"sm",onClick:()=>b(!u),className:`w-full gap-1.5 text-xs sm:w-auto ${u?"bg-red-600 hover:bg-red-700":""}`,children:[e.jsx(Bt,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:146",className:"h-3.5 w-3.5"}),"Mauvais payeurs"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:151",className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:152",className:"border rounded-lg p-4",children:[e.jsx("h5",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:153",className:"text-xs font-medium text-muted-foreground mb-3",children:"Répartition des niveaux de risque"}),e.jsx("div",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:154",className:"h-[200px]",children:e.jsx(U,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:155",children:e.jsx(W,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:155",width:"100%",height:"100%",children:e.jsxs(Ba,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:156",children:[e.jsx(Va,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:157",data:N,cx:"50%",cy:"50%",innerRadius:50,outerRadius:80,paddingAngle:2,dataKey:"value",label:({name:s,value:m})=>`${s} (${m})`,children:N.map((s,m)=>e.jsx($e,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:168",fill:s.color},`cell-${m}`))}),e.jsx(G,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:171",formatter:(s,m)=>[`${s} client${s>1?"s":""}`,m]})]})})})})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:177",className:"border rounded-lg p-4",children:[e.jsx("h5",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:178",className:"text-xs font-medium text-muted-foreground mb-3",children:"Top clients à risque (taux de retard %)"}),e.jsx("div",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:179",className:"h-[200px]",children:e.jsx(U,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:180",children:e.jsx(W,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:180",width:"100%",height:"100%",children:e.jsxs(Pe,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:181",data:p,layout:"vertical",margin:{left:10,right:20},children:[e.jsx(ne,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:182",strokeDasharray:"3 3",stroke:n?"#334155":"#e5e7eb",opacity:.3}),e.jsx(le,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:183",type:"number",domain:[0,100],tickFormatter:s=>`${s}%`,tick:{fontSize:10}}),e.jsx(Z,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:184",type:"category",dataKey:"name",width:130,tick:{fontSize:10}}),e.jsx(G,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:185",formatter:(s,m)=>[m==="lateRate"?`${s}%`:`+${s}j`,m==="lateRate"?"Taux de retard":"Retard moyen"],labelFormatter:s=>p.find(x=>x.name===s)?.fullName||s}),e.jsx(re,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:195",dataKey:"lateRate",fill:"#ef4444",radiu
6s:[0,4,4,0],name:"lateRate"})]})})})})]})]}),e.jsx("div",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:202",className:"overflow-x-auto",children:e.jsxs(ve,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:203",children:[e.jsx(Ne,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:204",children:e.jsxs(F,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:205",children:[e.jsx(C,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:206",className:"text-xs cursor-pointer select-none",onClick:()=>f("client"),children:e.jsxs("div",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:207",className:"flex items-center",children:["Client ",e.jsx(D,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:207",field:"client"})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:209",className:"text-xs text-center",children:"Périmètres"}),e.jsx(C,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:210",className:"text-xs cursor-pointer select-none text-center",onClick:()=>f("invoices"),children:e.jsxs("div",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:211",className:"flex items-center justify-center",children:["Factures ",e.jsx(D,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:211",field:"invoices"})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:213",className:"text-xs text-center",children:"Payées"}),e.jsx(C,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:214",className:"text-xs text-center",children:"En retard"}),e.jsx(C,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:215",className:"text-xs cursor-pointer select-none text-center",onClick:()=>f("lateRate"),children:e.jsxs("div",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:216",className:"flex items-center justify-center",children:[e.jsxs(te,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:217",children:[e.jsxs(ae,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:218",className:"flex items-center gap-1",children:["Taux retard ",e.jsx(oe,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:219",className:"h-3 w-3 opacity-50"})]}),e.jsx(se,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:221",children:e.jsx("p",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:221",className:"text-xs",children:"% de factures payées en retard par rapport aux conditions de règlement"})})]}),e.jsx(D,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:223",field:"lateRate"})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:226",className:"text-xs cursor-pointer select-none text-center",onClick:()=>f("avgDelta"),children:e.jsxs("div",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:227",className:"flex items-center justify-center",children:[e.jsxs(te,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:228",children:[e.jsxs(ae,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:229",className:"flex items-center gap-1",children:["Retard moy. ",e.jsx(oe,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:230",className:"h-3 w-3 opacity-50"})]}),e.jsx(se,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:232",children:e.jsx("p",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:232",className:"text-xs",children:"Ãcart moyen en jours entre le délai réel et le délai théorique"})})]}),e.jsx(D,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:234",field:"avgDelta"})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:237",className:"text-xs cursor-pointer select-none text-center",onClick:()=>f("maxDelta"),children:e.jsxs("div",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:238",className:"flex items-center justify-center",children:[e.jsxs(te,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:239",children:[e.jsxs(ae,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:240",className:"flex items-center gap-1",children:["Retard max ",e.jsx(oe,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:241",className:"h-3 w-3 opacity-50"})]}),e.jsx(se,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:243",children:e.jsx("p",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:243",className:"text-xs",children:"Retard maximum observé sur une facture (en jours)"})})]}),e.jsx(D,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:245",field:"maxDelta"})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:248",className:"text-xs text-center",children:"Non payées"}),e.jsx(C,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:249",className:"text-xs cursor-pointer select-none text-right",onClick:()=>f("amount"),children:e.jsxs("div",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:250",className:"flex items-center justify-end",children:["Montant HT ",e.jsx(D,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:250",field:"amount"})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:252",className:"text-xs text-center",children:"Risque"})]})}),e.jsx(Ce,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:255",children:j.map(s=>e.jsxs(F,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:257",className:s.risk.label==="Critique"?"bg-red-50/50":s.risk.label==="Ãlevé"?"bg-orange-50/30":"",children:[e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:258",className:"text-xs font-medium max-w-[200px] truncate",title:s.clientName,children:s.clientName}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:259",className:"text-xs text-center",children:e.jsxs("div",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:260",className:"flex flex-wrap gap-1 justify-center",children:[s.perimetres?.slice(0,3).map(m=>e.jsx(k,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:262",variant:"outline",className:"text-[10px] px-1.5 py-0",children:m},m)),s.perimetres?.length>3&&e.jsxs(k,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:264",variant:"outline",className:"text-[10px] px-1.5 py-0",children:["+",s.perimetres.length-3]})]})}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:267",className:"text-xs text-center",children:s.invoiceCount}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:268",className:"text-xs text-center text-green-600",children:s.paidCount}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:269",className:"text-xs text-center",children:s.lateCount>0?e.jsx("span",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:271",className:"text-red-600 font-medium",children:s.lateCount}):e.jsx("span",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:273",className:"text-green-600",children:"0"})}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:276",className:"text-xs text-center",children:s.lateRate!==null?e.jsxs("div",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:278",className:"flex items-center justify-center gap-1.5",children:[e.jsx("div",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:279",className:"w-16 bg-gray-200 rounded-full h-2",children:e.jsx("div",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:280",className:`h-2 rounded-full ${s.lateRate>=75?"bg-red-500":s.lateRate>=50?"bg-orange-500":s.lateRate>=25?"bg-amber-500":"bg-green-500"}`,style:{width:`${Math.min(100,s.lateRate)}%`}})}),e.jsxs("span",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:285",className:`font-medium ${s.lateRate>=75?"text-red-600":s.lateRate>=50?"text-orange-600":s.lateRate>=25?"text-amber-600":"text-green-600"}`,children:[s.lateRate,"%"]})]}):"â"}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:291",className:"text-xs text-center",children:s.avgDelta!==null?e.jsxs(k,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:293",variant:"outline",className:`text-xs ${we(s.avgDelta)}`,children:[s.avgDelta>0?"+":"",s.avgDelta,"j"]}):"â"}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:298",className:"text-xs text-center",children:s.maxDelta!==null?e.jsxs(k,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:300",variant:"outline",className:`text-xs ${we(s.maxDelta)}`,children:["+",s.maxDelta,"j"]}):"â"}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:305",className:"text-xs text-center",children:s.unpaidCount>0?e.jsx("span",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:307",className:"text-amber-600 font-medium",children:s.unpaidCount}):e.jsx("span",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:309",className:"text-muted-foreground",children:"0"})}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:312",className:"text-xs text-right font-medium",children:ee(s.totalAmount)}),e.jsx(y,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:313",className:"text-xs text-center",children:e.jsx(k,{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:314",variant:"outline",className:`text-xs ${s.risk.color}`,children:s.risk.label})})]},s.clientName))})]})}),e.jsxs("div",{"data-loc":"client/src/pages/payments/ClientPaymentSynthesis.tsx:323",className:"text-xs text-muted-foreground pb-2",children:[j.length," client",j.length>
61?"s":""," affiché",j.length>1?"s":"",u&&" (filtre : mauvais payeurs uniquement)"]})]})}function Rs({monthlyEvolution:t,selectedClientId:a,invoices:n}){const{theme:l}=be(),r=l==="dark"||l==="system"&&window.matchMedia("(prefers-color-scheme: dark)").matches,d=T.useRef(null),h=async()=>{if(d.current)try{(await Dt(d.current,{backgroundColor:r?"#1e293b":"#ffffff"})).toBlob(P=>{P&&(navigator.clipboard.write([new ClipboardItem({"image/png":P})]),H.success("Graphique copié dans le presse-papiers"))})}catch{H.error("Erreur lors de la copie")}},u=()=>{if(!b||b.length===0)return;const p=["Mois","Délai réel moyen (j)","Délai théorique moyen (j)","Ãcart moyen (j)","Factures","Payées","En retard","Taux retard (%)"],P=b.map(v=>[v.month,v.avgActualDays,v.avgTheoreticalDays,v.avgDelta,v.invoiceCount,v.paidCount,v.lateCount,v.lateRate].join(";")),o=[p.join(";"),...P].join(` 7`),s=new Blob([`\uFEFF${o}`],{type:"text/csv;charset=utf-8;"}),m=URL.createObjectURL(s),x=document.createElement("a");x.href=m,x.download="evolution_retards_mensuels.csv",x.click(),URL.revokeObjectURL(m),H.success("Données exportées en CSV")},b=T.useMemo(()=>{if(!a||!n)return t;const p=n.filter(o=>o.clientId===a&&o.isPaid&&o.actualDays!==null);if(p.length===0)return[];const P=new Map;return p.forEach(o=>{const s=new Date(o.invoiceDate),m=`${s.getFullYear()}-${String(s.getMonth()+1).padStart(2,"0")}`;P.has(m)||P.set(m,{actual:[],theoretical:[],late:0,total:0,amount:0});const x=P.get(m);x.actual.push(o.actualDays),x.theoretical.push(o.theoreticalDays??0),o.delta>0&&x.late++,x.total++,x.amount+=o.amountHT}),Array.from(P.entries()).sort(([o],[s])=>o.localeCompare(s)).map(([o,s])=>{const[m,x]=o.split("-");return{month:`${["Jan","Fév","Mar","Avr","Mai","Jun","Jul","Aoû","Sep","Oct","Nov","Déc"][parseInt(x)-1]} ${m}`,monthNum:parseInt(x),avgActualDays:Math.round(s.actual.reduce((S,O)=>S+O,0)/s.actual.length*10)/10,avgTheoreticalDays:Math.round(s.theoretical.reduce((S,O)=>S+O,0)/s.theoretical.length*10)/10,avgDelta:Math.round((s.actual.reduce((S,O)=>S+O,0)/s.actual.length-s.theoretical.reduce((S,O)=>S+O,0)/s.theoretical.length)*10)/10,paidCount:s.total,lateCount:s.late,lateRate:Math.round(s.late/s.total*1e3)/10,invoiceCount:s.total,totalAmount:s.amount}})},[a,n,t]);if(!b||b.length===0)return e.jsxs(L,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:94",children:[e.jsx(me,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:95",children:e.jsxs(de,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:96",className:"text-base flex items-center gap-2",children:[e.jsx(ke,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:97",className:"h-4 w-4"}),"Ãvolution mensuelle des retards"]})}),e.jsx(K,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:101",children:e.jsx("p",{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:102",className:"text-sm text-muted-foreground text-center py-8",children:"Aucune donnée disponible"})})]});const f=b.flatMap(p=>[p.avgActualDays,p.avgTheoreticalDays]),D=Math.min(...f),i=Math.max(...f),j=Math.max(0,Math.floor(D-5)),N=Math.ceil(i+5);return e.jsxs(L,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:115",children:[e.jsx(me,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:116",className:"pb-2",children:e.jsxs("div",{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:117",className:"flex items-center justify-between",children:[e.jsxs(de,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:118",className:"text-base flex items-center gap-2",children:[e.jsx(ke,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:119",className:"h-4 w-4"}),"Ãvolution mensuelle des retards de paiement"]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:122",className:"flex items-center gap-1",children:[e.jsx(V,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:123",variant:"ghost",size:"icon",className:"h-7 w-7",onClick:h,title:"Copier le graphique","aria-label":"Copier le graphique",children:e.jsx(ca,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:124",className:"h-3.5 w-3.5"})}),e.jsx(V,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:126",variant:"ghost",size:"icon",className:"h-7 w-7",onClick:u,title:"Exporter les données","aria-label":"Exporter les données CSV",children:e.jsx(St,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:127",className:"h-3.5 w-3.5"})})]})]})}),e.jsx(K,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:132",children:e.jsxs("div",{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:133",ref:d,children:[e.jsxs("div",{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:134",className:"mb-6",children:[e.jsx("p",{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:135",className:"text-xs text-muted-foreground mb-2 font-medium",children:"Délai réel vs théorique (jours)"}),e.jsx(U,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:136",children:e.jsx(W,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:136",width:"100%",height:280,children:e.jsxs(Ht,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:137",data:b,margin:{top:5,right:20,left
7:0,bottom:5},children:[e.jsx(ne,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:138",strokeDasharray:"3 3",stroke:r?"#334155":"#f0f0f0"}),e.jsx(le,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:139",dataKey:"month",tick:{fontSize:12}}),e.jsx(Z,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:140",domain:[j,N],tick:{fontSize:12}}),e.jsx(G,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:141",contentStyle:{fontSize:12,borderRadius:8,border:`1px solid ${r?"#334155":"#e5e7eb"}`,backgroundColor:r?"#1e293b":"white",color:r?"#e2e8f0":"#111"},formatter:(p,P)=>{const o={avgActualDays:"Délai réel moyen",avgTheoreticalDays:"Délai théorique moyen",avgDelta:"Ãcart moyen"};return[`${p} jours`,o[P]||P]}}),e.jsx(je,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:152",formatter:p=>{const P={avgActualDays:"Délai réel moyen",avgTheoreticalDays:"Délai théorique moyen"};return e.jsx("span",{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:158",className:"text-xs",children:P[p]||p})}}),e.jsx(Ge,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:161",type:"monotone",dataKey:"avgActualDays",stroke:"#ef4444",strokeWidth:2.5,dot:{r:4,fill:"#ef4444"},activeDot:{r:6}}),e.jsx(Ge,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:162",type:"monotone",dataKey:"avgTheoreticalDays",stroke:"#3b82f6",strokeWidth:2,strokeDasharray:"5 5",dot:{r:3,fill:"#3b82f6"}}),e.jsx(bt,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:163",y:0,stroke:"#9ca3af",strokeDasharray:"3 3"})]})})})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:168",className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:169",children:[e.jsx("p",{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:170",className:"text-xs text-muted-foreground mb-2 font-medium",children:"Ãcart moyen par mois (jours)"}),e.jsx(U,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:171",children:e.jsx(W,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:171",width:"100%",height:200,children:e.jsxs(Pe,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:172",data:b,margin:{top:5,right:10,left:0,bottom:5},children:[e.jsx(ne,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:173",strokeDasharray:"3 3",stroke:r?"#334155":"#f0f0f0"}),e.jsx(le,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:174",dataKey:"month",tick:{fontSize:11}}),e.jsx(Z,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:175",tick:{fontSize:11}}),e.jsx(G,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:176",contentStyle:{fontSize:12,borderRadius:8,border:`1px solid ${r?"#334155":"#e5e7eb"}`,backgroundColor:r?"#1e293b":"white",color:r?"#e2e8f0":"#111"},formatter:p=>[`${p} jours`,"Ãcart moyen"]}),e.jsx(bt,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:180",y:0,stroke:"#9ca3af",strokeWidth:1.5}),e.jsx(re,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:181",dataKey:"avgDelta",radius:[4,4,0,0],children:b.map((p,P)=>e.jsx($e,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:183",fill:p.avgDelta<=0?"#22c55e":p.avgDelta<=10?"#f59e0b":"#ef4444"},`cell-${P}`))})]})})})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:192",children:[e.jsx("p",{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:193",className:"text-xs text-muted-foreground mb-2 font-medium",children:"Taux de retard par mois (%)"}),e.jsx(U,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:194",children:e.jsx(W,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:194",width:"100%",height:200,children:e.jsxs(Ht,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:195",data:b,margin:{top:5,right:10,left:0,bottom:5},children:[e.jsx(ne,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:196",strokeDasharray:"3 3",stroke:r?"#334155":"#f0f0f0"}),e.jsx(le,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:197",dataKey:"month",tick:{fontSize:11}}),e.jsx(Z,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:198",domain:[0,100],tick:{fontSize:11},unit:"%"}),e.jsx(G,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:199",contentStyle:{fontSize:12,borderRadius:8,border:`1px solid ${r?"#334155":"#e5e7eb"}`,backgroundColor:r?"#1e293b":"white",color:r?"#e2e8f0":"#111"},formatter:(p,P)=>P==="lateRate"?[`${p}%`,"Taux de retard"]:[`${p}`,P==="paidCount"?"Factures payées":"Factures en retard"]}),e.jsx(je,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:206",formatter:p=>{const P={lateRate:"Taux de retard",paidCount:"Payées",lateCount:"En retard"};return e.jsx("span",{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:209",className:"text-xs",children:P[p]||p})}}),e.jsx(re,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:212",dataKey:"paidCount",fill:"#3b82f6",opacity:.3,radius:[4,4,0,0],yAxisId:"right"}),e.jsx(re,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:213",dataKey:"lateCount",fill:"#ef4444",opacity:.5,radius:[4,4,0,0],yAxisId:"right"}),e.jsx(Ge,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:214",type:"monotone",dataKey:"lateRate",stroke:"#ef4444",strokeWidth:2.5,dot:{r:4,fill:"#ef4444"}}),e.jsx(Z,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:215",yAxisId:"right",orientation:"right",tick:{fontSize:11}})]})})})]})]}),e.jsx("div",{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:221",className:"mt-4 overflow-x-auto",children:e.jsxs(ve,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:222",children:[e.jsx(Ne,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:223",children:e.jsxs(F,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:224",children:[e.jsx(C,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:225",className:"text-xs",children:"Mois"}),e.jsx(C,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:226",className:"text-xs text-right",children:"Factures"}),e.jsx(C,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:227",className:"text-xs text-right",children:"Payées"}),e.jsx(C,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:228",className:"text-xs text-right",children:"En retard"}),e.jsx(C,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:229",className:"text-xs text-right",children:"Taux retard"}),e.jsx(C,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:230",className:"text-xs text-right",children:"Délai réel"}),e.jsx(C,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:231",className:"text-xs text-right",children:"Délai théorique"}),e.jsx(C,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:232",className:"text-xs text-right",children:"Ãcart"})]})}),e.jsx(Ce,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:235",children:b.map(p=>e.jsxs(F,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:237",children:[e.jsx(y,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:238",className:"text-xs font-medium",children:p.month}),e.jsx(y,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:239",className:"text-xs text-right",children:p.invoiceCount}),e.jsx(y,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:240",className:"text-xs text-right",children:p.paidCount}),e.jsx(y,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:241",className:"text-xs text-right",children:e.jsx("span",{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:242",className:p.lateCount>0?"text-red-600 font-medium":"",children:p.lateCount})}),e.jsx(y,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:244",className:"text-xs text-right",children:e.jsxs(k,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:245",variant:"outline",className:`text-[10px] px-1.5 ${p.lateRate===0?"bg-green-50 text-green-700 border-green-200":p.lateRate<=30?"bg-yellow-50 text-yellow-700 border-yellow-200":p.lateRate<=60?"bg-orange-50 text-orange-700 border-orange-200":"bg-red-50 text-red-700 border-red-200"}`,children:[p.lateRate,"%"]})}),e.jsxs(y,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:254",className:"text-xs text-right",children:[p.avgActualDays,"j"]}),e.jsxs(y,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:255",className:"text-xs text-right text-muted-foreground",children:[p.avgTheoreticalDays,"j"]}),e.jsx(y,{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:256",className:"text-xs text-right",children:e.jsxs("span",{"data-loc":"client/src/pages/payments/MonthlyDelayEvolutionChart.tsx:257",className:`font-medium ${p.avgDelta<=0?"text-green-600":p.avgDelta<=10?"text-yellow-600":"text-red-600"}`,children:[p.avgDelta>0?"+":"",p.avgDelta,"j"]})})]},p.monthNum))})]})})]})})]})}function $s({data:t,search:a,onlyLate:n,selectedClientId:l}){const[r,d]=T.useState("date"),[h,u]=T.useState("desc"),b=i=>{r===i?u(h==="asc"?"desc":"asc"):(d(i),u("desc"))},f=({field:i})=>r!==i?e.jsx(et,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:45",className:"h-3.5 w-3.5 ml-1 opacity-40"}):h==="asc"?e.jsx(tt,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:47",className:"h-3.5 w-3.5 ml-1 text-primary"}):e.jsx(at,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:48",className:"h-3.5 w-3.5 ml-1 text-primary"}),D=T.useMemo(()=>
7{if(!t?.invoices)return[];let i=t.invoices;if(l&&(i=i.filter(j=>j.clientId===l)),a){const j=a.toLowerCase();i=i.filter(N=>N.clientName.toLowerCase().includes(j)||N.invoiceRef.toLowerCase().includes(j)||N.projectName.toLowerCase().includes(j)||N.orderNumber.toLowerCase().includes(j))}return n&&(i=i.filter(j=>j.delta!==null&&j.delta>0)),i=[...i].sort((j,N)=>{let p,P;switch(r){case"date":p=j.invoiceDate,P=N.invoiceDate;break;case"client":p=j.clientName,P=N.clientName;break;case"amount":p=j.amountHT,P=N.amountHT;break;case"actualDays":p=j.actualDays??-1,P=N.actualDays??-1;break;case"delta":p=j.delta??-999,P=N.delta??-999;break;case"state":p=j.state,P=N.state;break;default:p=0,P=0}return typeof p=="string"?h==="asc"?p.localeCompare(P):P.localeCompare(p):h==="asc"?p-P:P-p}),i},[t,a,r,h,n,l]);return!t||D.length===0?e.jsxs("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:90",className:"text-center py-12 text-muted-foreground",children:[e.jsx(vt,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:91",className:"h-12 w-12 mx-auto mb-3 opacity-30"}),e.jsx("p",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:92",children:"Aucune facture trouvée pour cette période"})]}):e.jsxs("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:98",className:"space-y-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:100",className:"grid grid-cols-2 md:grid-cols-5 gap-3 p-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:101",className:"text-center",children:[e.jsx("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:102",className:"text-2xl font-bold",children:t.totalInvoices}),e.jsx("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:103",className:"text-xs text-muted-foreground",children:"Factures"})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:105",className:"text-center",children:[e.jsx("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:106",className:"text-2xl font-bold text-green-600",children:t.paidInvoices}),e.jsx("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:107",className:"text-xs text-muted-foreground",children:"Payées"})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:109",className:"text-center",children:[e.jsx("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:110",className:"text-2xl font-bold text-amber-600",children:t.unpaidInvoices}),e.jsx("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:111",className:"text-xs text-muted-foreground",children:"Non payées"})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:113",className:"text-center",children:[e.jsxs("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:114",className:"text-2xl font-bold",children:[t.avgActualDays,"j ",e.jsxs("span",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:114",className:"text-sm font-normal text-muted-foreground",children:["/ ",t.avgTheoreticalDays,"j"]})]}),e.jsx("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:115",className:"text-xs text-muted-foreground",children:"Délai réel / théorique"})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:117",className:"text-center",children:[e.jsxs("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:118",className:`text-2xl font-bold ${t.avgDelta>0?"text-red-600":t.avgDelta<0?"text-green-600":""}`,children:[t.avgDelta>0?"+":"",t.avgDelta,"j"]}),e.jsx("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:121",className:"text-xs text-muted-foreground",children:"Ãcart moyen"})]})]}),t.clientStats&&t.clientStats.length>0&&e.jsx(xa,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:127",clientStats:t.clientStats}),e.jsx("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:131",className:"overflow-x-auto",children:e.jsxs(ve,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:132",children:[e.jsx(Ne,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:133",children:e.jsxs(F,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:134",children:[e.jsx(C,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:135",className:"text-xs cursor-pointer select-none",onClick:()=>b("date"),children:e.jsxs("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:136",className:"flex items-center",children:["Date facture ",e.jsx(f,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:136",field:"date"})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:138",className:"text-xs",children:"Réf."}),e.jsx(C,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:139",className:"text-xs cursor-pointer select-none",onClick:()=>b("client"),children:e.jsxs("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:140",className:"flex items-center",children:["Client ",e.jsx(f,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:140",field:"client"})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:142",className:"text-xs",children:"Projet"}),e.jsx(C,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:143",className:"text-xs",children:"Commande"}),e.jsx(C,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:144",className:"text-xs",children:"Périmètre"}),e.jsx(C,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:145",className:"text-xs",children:"Condition"}),e.jsx(C,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:146",className:"text-xs cursor-pointer select-none text-center",onClick:()=>b("actualDays"),children:e.jsxs("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:147",className:"flex items-center justify-center",children:["Délai réel ",e.jsx(f,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:147",field:"actualDays"})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:149",className:"text-xs text-center",children:"Délai théo."}),e.jsx(C,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:150",className:"text-xs cursor-pointer select-none text-center",onClick:()=>b("delta"),children:e.jsxs("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:151",className:"flex items-center justify-center",children:["Ãcart ",e.jsx(f,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:151",field:"delta"})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:153",className:"text-xs cursor-pointer select-none text-right",onClick:()=>b("amount"),children:e.jsxs("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:154",className:"flex items-center justify-end",children:["Montant HT ",e.jsx(f,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:154",field:"amount"})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:156",className:"text-xs cursor-pointer select-none text-center",onClick:()=>b("state"),children:e.jsxs("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:157",className:"flex items-center justify-center",children:["Ãtat ",e.jsx(f,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:157",field:"state"})]})})]})}),e.jsx(Ce,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:161",children:D.map(i=>{const j=da(i.state);return e.jsxs(F,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:165",className:i.delta!==null&&i.delta>5?"bg-red-50/50":"",children:[e.jsx(y,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:166",className:"text-xs",children:At(i.invoiceDate)}),e.jsx(y,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:167",className:"text-xs font-mono",children:i.invoiceRef}),e.jsx(y,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:168",className:"text-xs font-medium",children:i.clientName}),e.jsx(y,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:169",className:"text-xs text-muted-foreground truncate max-w-[200px]",title:i.projectName,children:i.projectName}),e.jsx(y,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:170",className:"text-xs font-mono",children:i.orderNumber||"â"}),e.jsx(y,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:171",className:"text-xs",children:e.jsx(k,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:172",variant:"outline",className:"text-xs",children:i.perimetreName})}),e.jsx(y,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:174",className:"text-xs",children:e.jsx(k,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:175",variant:"outline",className:`text-xs ${pe(i.paymentTermDays)}`,children:i.paymentTermLabel})}),e.jsx(y,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:179",className:"text-xs text-center font-medium",children:i.actualDays!==null?`${i.actualDays}j`:"â"}),e.jsxs(y,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:182",className:"text-xs text-center text-muted-foreground",children:[i.paymentTermDays,"j"]}),e.jsx(y,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:185",className:"text-xs text-center",children:i.delta!==null?e.jsxs(k,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:187",variant:"outline",className:`text-xs ${we(i.delta)}`,children:[i.delta>0?"+":"",i.delta,"j"]}):e.jsx("span",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:191",className:"text-muted-foreground",children:"â"})}),e.jsx(y,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:194",className:"text-xs text-right",children:ee(i.amountHT)}),e.jsx(y,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:195",className:"text-xs text-center",children:e.jsx(k,{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:196",variant:"outline",className:`text-xs ${j.color}`,children:j.label})})]},i.invoiceId)})})]})}),e.jsxs("div",{"data-loc":"client/src/pages/payments/InvoicePaymentTable.tsx:206",className:"px-4 pb-4 text-xs text-muted-foreground",children:[D.length," facture",D.length>
71?"s":""," affichée",D.length>1?"s":"",n&&" (filtre : retards uniquement)"]})]})}function Os({perimetreStats:t}){const{theme:a}=be(),n=a==="dark"||a==="system"&&window.matchMedia("(prefers-color-scheme: dark)").matches,l=T.useRef(null),r=async()=>{if(l.current)try{(await Dt(l.current,{backgroundColor:n?"#1e293b":"#ffffff"})).toBlob(A=>{A&&(navigator.clipboard.write([new ClipboardItem({"image/png":A})]),H.success("Graphique copié dans le presse-papiers"))})}catch{H.error("Erreur lors de la copie")}},d=()=>{if(!t||t.length===0)return;const c=["Périmètre","Factures","Payées","En retard","Non payées","Taux retard (%)","Délai réel moy. (j)","Délai théorique moy. (j)","Ãcart moy. (j)","Retard max (j)","Clients","Montant HT","Risque"],A=t.map(z=>[z.perimetreName,z.invoiceCount,z.paidCount,z.lateCount,z.unpaidCount,z.lateRate??"",z.avgActualDays??"",z.avgTheoreticalDays??"",z.avgDelta??"",z.maxDelta??"",z.clientCount,Math.round(z.totalAmount),z.riskLabel].join(";")),J=[c.join(";"),...A].join(` 8`),De=new Blob([`\uFEFF${J}`],{type:"text/csv;charset=utf-8;"}),Se=URL.createObjectURL(De),_=document.createElement("a");_.href=Se,_.download="analyse_perimetres.csv",_.click(),URL.revokeObjectURL(Se),H.success("Données exportées en CSV")};if(!t||t.length===0)return e.jsx(L,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:90",children:e.jsx(K,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:91",className:"py-12",children:e.jsx("p",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:92",className:"text-sm text-muted-foreground text-center",children:"Aucune donnée de périmètre disponible"})})});const h=t.map((c,A)=>({name:c.perimetreName,delaiReel:c.avgActualDays??0,delaiTheorique:c.avgTheoreticalDays??0,ecart:c.avgDelta??0,fill:fe(c.perimetreName,A)})),u=t.map((c,A)=>({name:c.perimetreName,tauxRetard:c.lateRate??0,fill:fe(c.perimetreName,A)})),b=Math.max(...t.map(c=>c.invoiceCount),1),f=Math.max(...t.map(c=>c.totalAmount),1),D=Math.max(...t.map(c=>c.clientCount),1),i=Math.max(...t.map(c=>Math.abs(c.avgDelta??0)),1),j=Math.max(...t.map(c=>c.lateRate??0),1),N=Math.max(...t.map(c=>c.avgActualDays??0),1),p=[{metric:"Volume factures",fullMark:100,...Object.fromEntries(t.map(c=>[c.perimetreName,Math.round(c.invoiceCount/b*100)]))},{metric:"Montant HT",fullMark:100,...Object.fromEntries(t.map(c=>[c.perimetreName,Math.round(c.totalAmount/f*100)]))},{metric:"Nb clients",fullMark:100,...Object.fromEntries(t.map(c=>[c.perimetreName,Math.round(c.clientCount/D*100)]))},{metric:"Taux retard",fullMark:100,...Object.fromEntries(t.map(c=>[c.perimetreName,Math.round((c.lateRate??0)/j*100)]))},{metric:"Délai réel",fullMark:100,...Object.fromEntries(t.map(c=>[c.perimetreName,Math.round((c.avgActualDays??0)/N*100)]))},{metric:"Ãcart moy.",fullMark:100,...Object.fromEntries(t.map(c=>[c.perimetreName,Math.round(Math.abs(c.avgDelta??0)/i*100)]))}],P=new Set;t.forEach(c=>{c.monthlyEvolution?.forEach(A=>P.add(A.monthNum))});const o=Array.from(P).sort((c,A)=>c-A),s=["Jan","Fév","Mar","Avr","Mai","Juin","Juil","Août","Sep","Oct","Nov","Déc"],m=o.map(c=>{const A={month:s[c-1],monthNum:c};return t.forEach(J=>{const De=J.monthlyEvolution?.find(Se=>Se.monthNum===c);A[`${J.perimetreName}_delta`]=De?.avgDelta??null,A[`${J.perimetreName}_lateRate`]=De?.lateRate??null}),A}),x=t.reduce((c,A)=>c+A.invoiceCount,0),v=t.reduce((c,A)=>c+A.paidCount,0),S=t.reduce((c,A)=>c+A.lateCount,0),O=t.reduce((c,A)=>c+A.totalAmount,0),Y=v>0?Math.round(S/v*100):0,ge=[...t].filter(c=>c.lateRate!==null).sort((c,A)=>(c.lateRate??100)-(A.lateRate??100))[0],R=[...t].filter(c=>c.lateRate!==null).sort((c,A)=>(A.lateRate??0)-(c.lateRate??0))[0];function Ee(c){switch(c){case"Critique":return"bg-red-100 text-red-800 border-red-300";case"Ãlevé":return"bg-orange-100 text-orange-800 border-orange-300";case"Modéré":return"bg-amber-100 text-amber-800 border-amber-300";case"Faible":return"bg-blue-100 text-blue-800 border-blue-300";case"Bon":return"bg-green-100 text-green-800 border-green-300";default:return"bg-gray-100 text-gray-600 border-gray-200"}}return e.jsxs("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:171",className:"space-y-4",ref:l,children:[e.jsxs("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:173",className:"flex items-center justify-between",children:[e.jsxs("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:174",className:"flex items-center gap-3",children:[e.jsxs("h4",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:175",className:"text-sm font-semibold flex items-center gap-2",children:[e.jsx(Ha,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:176",className:"h-4 w-4"}),"Analyse comparative par périmètre"]}),e.jsxs(k,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:179",variant:"outline",className:"text-xs",children:[t.length," périmètres"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:181",className:"flex items-center gap-1",children:[e.jsx(V,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:182",variant:"ghost",size:"icon",className:"h-7 w-7",onClick:r,title:"Copier",children:e.jsx(ca,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:183",className:"h-3.5 w-3.5"})}),e.jsx(V,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:185",variant:"ghost",size:"icon",className:"h-7 w-7",onClick:d,title:"Exporter CSV",children:e.jsx(St,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:186",className:"h-3.5 w-3.5"})})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:192",className:"grid grid-cols-2 md:grid-cols-4 gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:193",className:"border rounded-lg p-3",children:[e.jsx("p",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:194",className:"text-xs text-muted-foreground",children:"Périmètres analysés"}),e.jsx("p",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:195",className:"text-2xl font-bold",children:t.length}),e.jsxs("p",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:196",className:"text-xs text-muted-foreground",children:[x," factures"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:198",className:"border rounded-lg p-3",children:[e.jsx("p",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:199",className:"text-xs text-muted-foreground",children:"Taux de retard global"}),e.jsxs("p",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:200",className:`text-2xl font-bold ${Y>=50?"text-red-600":Y>=25?"text-amber-600":"text-green-600"}`,children:[Y,"%"]}),e.jsxs("p",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:201",className:"text-xs text-muted-foreground",children:[S," factures en retard / ",v," payées"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:203",className:"border rounded-lg p-3",children:[e.jsxs("p",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:204",className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(ba,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:204",className:"h-3 w-3 text-green-500"})," Meilleur périmètre"]}),e.jsx("p",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:205",className:"text-lg font-bold text-green-600",children:ge?.perimetreName||"â"}),e.jsxs("p",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:206",className:"text-xs text-muted-foreground",children:[ge?.lateRate??0,"% de retard, écart moy. ",ge?.avgDelta??0,"j"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:208",className:"border rounded-lg p-3",children:[e.jsxs("p",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:209",className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(Ct,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:209",className:"h-3 w-3 text-red-500"})," Périmètre à surveiller"]}),e.jsx("p",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:210",className:"text-lg font-bold text-red-600",children:R?.perimetreName||"â"}),e.jsxs("p",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:211",className:"text-xs text-muted-foreground",children:[R?.lateRate??0,"% de retard, écart moy. ",R?.avgDelta??0,"j"]})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:216",className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:218",className:"border rounded-lg p-4",children:[e.jsx("h5",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:219",className:"text-xs font-medium text-muted-foreground mb-3",children:"Délai réel vs théorique par périmètre (jours)"}),e.jsx("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:220",className:"h-[260px]",children:e.jsx(U,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:221",children:e.jsx(W,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:221",width:"100%",height:"100%",children:e.jsxs(Pe,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:222",data:h,margin:{top:5,right:20,left
8:0,bottom:5},children:[e.jsx(ne,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:223",strokeDasharray:"3 3",stroke:n?"#334155":"#f0f0f0"}),e.jsx(le,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:224",dataKey:"name",tick:{fontSize:11}}),e.jsx(Z,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:225",tick:{fontSize:11}}),e.jsx(G,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:226",contentStyle:{fontSize:12,borderRadius:8,border:`1px solid ${n?"#334155":"#e5e7eb"}`,backgroundColor:n?"#1e293b":"white",color:n?"#e2e8f0":"#111"},formatter:(c,A)=>{const J={delaiReel:"Délai réel",delaiTheorique:"Délai théorique",ecart:"Ãcart"};return[`${c} jours`,J[A]||A]}}),e.jsx(je,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:233",formatter:c=>{const A={delaiReel:"Délai réel",delaiTheorique:"Délai théorique"};return e.jsx("span",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:235",className:"text-xs",children:A[c]||c})}}),e.jsx(re,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:237",dataKey:"delaiReel",fill:"#ef4444",radiu
8s:[4,4,0,0],name:"delaiReel"}),e.jsx(re,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:238",dataKey:"delaiTheorique",fill:"#3b82f6",radius:[4,4,0,0],name:"delaiTheorique"})]})})})})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:245",className:"border rounded-lg p-4",children:[e.jsx("h5",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:246",className:"text-xs font-medium text-muted-foreground mb-3",children:"Taux de retard par périmètre (%)"}),e.jsx("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:247",className:"h-[260px]",children:e.jsx(U,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:248",children:e.jsx(W,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:248",width:"100%",height:"100%",children:e.jsxs(Pe,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:249",data:u,margin:{top:5,right:20,left:0,bottom:5},children:[e.jsx(ne,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:250",strokeDasharray:"3 3",stroke:n?"#334155":"#f0f0f0"}),e.jsx(le,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:251",dataKey:"name",tick:{fontSize:11}}),e.jsx(Z,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:252",domain:[0,100],tickFormatter:c=>`${c}%`,tick:{fontSize:11}}),e.jsx(G,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:253",contentStyle:{fontSize:12,borderRadius:8,border:`1px solid ${n?"#334155":"#e5e7eb"}`,backgroundColor:n?"#1e293b":"white",color:n?"#e2e8f0":"#111"},formatter:c=>[`${c}%`,"Taux de retard"]}),e.jsx(re,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:257",dataKey:"tauxRetard",radius:[4,4,0,0],children:u.map((c,A)=>e.jsx($e,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:259",fill:fe(c.name,A)},`cell-${A}`))})]})})})})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:269",className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:271",className:"border rounded-lg p-4",children:[e.jsx("h5",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:272",className:"text-xs font-medium text-muted-foreground mb-3",children:"Profil comparatif des périmètres (normalisé 0-100)"}),e.jsx("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:273",className:"h-[300px]",children:e.jsx(U,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:274",children:e.jsx(W,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:274",width:"100%",height:"100%",children:e.jsxs(Ds,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:275",data:p,cx:"50%",cy:"50%",outerRadius:"70%",children:[e.jsx(ia,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:276",stroke:"#e5e7eb"}),e.jsx(la,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:277",dataKey:"metric",tick:{fontSize:10}}),e.jsx(ra,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:278",angle:30,domain:[0,100],tick:{fontSize:9}}),t.map((c,A)=>e.jsx(Ke,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:280",name:c.perimetreName,dataKey:c.perimetreName,stroke:fe(c.perimetreName,A),fill:fe(c.perimetreName,A),fillOpacity:.15,strokeWidth:2},c.perimetreName)),e.jsx(je,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:290",wrapperStyle:{fontSize:11}}),e.jsx(G,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:291",contentStyle:{fontSize:11,borderRadius:8,border:`1px solid ${n?"#334155":"#e5e7eb"}`,backgroundColor:n?"#1e293b":"white",color:n?"#e2e8f0":"#111"}})]})})})})]}),e.jsxs("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:298",className:"border rounded-lg p-4",children:[e.jsx("h5",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:299",className:"text-xs font-medium text-muted-foreground mb-3",children:"Ãvolution mensuelle de l'écart moyen par périmètre (jours)"}),e.jsx("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:300",className:"h-[300px]",children:e.jsx(U,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:301",children:e.jsx(W,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:301",width:"100%",height:"100%",children:e.jsxs(Ua,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:302",data:m,margin:{top:5,right:20,left
8:0,bottom:5},children:[e.jsx(ne,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:303",strokeDasharray:"3 3",stroke:n?"#334155":"#f0f0f0"}),e.jsx(le,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:304",dataKey:"month",tick:{fontSize:11}}),e.jsx(Z,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:305",tick:{fontSize:11}}),e.jsx(G,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:306",contentStyle:{fontSize:11,borderRadius:8,border:`1px solid ${n?"#334155":"#e5e7eb"}`,backgroundColor:n?"#1e293b":"white",color:n?"#e2e8f0":"#111"},formatter:(c,A)=>{const J=A.replace("_delta","");return c!==null?[`${c} jours`,J]:["â",J]}}),e.jsx(bt,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:313",y:0,stroke:"#9ca3af",strokeDasharray:"3 3"}),e.jsx(je,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:314",formatter:c=>e.jsx("span",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:314",className:"text-xs",children:c.replace("_delta","")})}),t.map((c,A)=>e.jsx(Ge,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:316",type:"monotone",dataKey:`${c.perimetreName}_delta`,stroke:fe(c.perimetreName,A),strokeWidth:2,dot:{r:3},connectNulls:!0,name:`${c.perimetreName}_delta`},c.perimetreName))]})})})})]})]}),e.jsx("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:334",className:"overflow-x-auto",children:e.jsxs(ve,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:335",children:[e.jsx(Ne,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:336",children:e.jsxs(F,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:337",className:"bg-muted/50",children:[e.jsx(C,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:338",className:"text-xs font-semibold",children:"Périmètre"}),e.jsx(C,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:339",className:"text-xs text-center font-semibold",children:"Factures"}),e.jsx(C,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:340",className:"text-xs text-center font-semibold",children:"Payées"}),e.jsx(C,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:341",className:"text-xs text-center font-semibold",children:"En retard"}),e.jsx(C,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:342",className:"text-xs text-center font-semibold",children:"Non payées"}),e.jsx(C,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:343",className:"text-xs text-center font-semibold",children:e.jsxs(te,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:344",children:[e.jsxs(ae,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:345",className:"flex items-center gap-1 mx-auto",children:["Taux retard ",e.jsx(oe,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:346",className:"h-3 w-3 opacity-50"})]}),e.jsx(se,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:348",children:e.jsx("p",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:348",className:"text-xs",children:"% de factures payées en retard"})})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:351",className:"text-xs text-center font-semibold",children:"Délai réel moy."}),e.jsx(C,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:352",className:"text-xs text-center font-semibold",children:"Délai théorique moy."}),e.jsx(C,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:353",className:"text-xs text-center font-semibold",children:e.jsxs(te,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:354",children:[e.jsxs(ae,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:355",className:"flex items-center gap-1 mx-auto",children:["Ãcart moy. ",e.jsx(oe,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:356",className:"h-3 w-3 opacity-50"})]}),e.jsx(se,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:358",children:e.jsx("p",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:358",className:"text-xs",children:"Ãcart moyen entre délai réel et théorique"})})]})}),e.jsx(C,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:361",className:"text-xs text-center font-semibold",children:"Retard max"}),e.jsx(C,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:362",className:"text-xs text-center font-semibold",children:"Clients"}),e.jsx(C,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:363",className:"text-xs text-right font-semibold",children:"Montant HT"}),e.jsx(C,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:364",className:"text-xs text-center font-semibold",children:"Risque"})]})}),e.jsxs(Ce,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:367",children:[t.map((c,A)=>e.jsxs(F,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:369",className:A%2===0?"":"bg-muted/20",children:[e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:370",className:"text-xs font-medium",children:e.jsxs("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:371",className:"flex items-center gap-2",children:[e.jsx("span",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:372",className:"inline-block w-2.5 h-2.5 rounded-full",style:{backgroundColor:fe(c.perimetreName,A)}}),c.perimetreName]})}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:376",className:"text-xs text-center",children:c.invoiceCount}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:377",className:"text-xs text-center text-green-600",children:c.paidCount}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:378",className:"text-xs text-center",children:c.lateCount>0?e.jsx("span",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:379",className:"text-red-600 font-medium",children:c.lateCount}):e.jsx("span",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:379",className:"text-green-600",children:"0"})}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:381",className:"text-xs text-center",children:c.unpaidCount>0?e.jsx("span",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:382",className:"text-amber-600 font-medium",children:c.unpaidCount}):e.jsx("span",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:382",className:"text-muted-foreground",children:"0"})}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:384",className:"text-xs text-center",children:c.lateRate!==null?e.jsxs("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:386",className:"flex items-center justify-center gap-1.5",children:[e.jsx("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:387",className:"w-14 bg-gray-200 rounded-full h-2",children:e.jsx("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:388",className:`h-2 rounded-full ${c.lateRate>=75?"bg-red-500":c.lateRate>=50?"bg-orange-500":c.lateRate>=25?"bg-amber-500":"bg-green-500"}`,style:{width:`${Math.min(100,c.lateRate)}%`}})}),e.jsxs("span",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:393",className:`font-medium ${c.lateRate>=75?"text-red-600":c.lateRate>=50?"text-orange-600":c.lateRate>=25?"text-amber-600":"text-green-600"}`,children:[c.lateRate,"%"]})]}):"â"}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:399",className:"text-xs text-center",children:c.avgActualDays!==null?e.jsxs(k,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:401",variant:"outline",className:`text-xs ${we(c.avgDelta)}`,children:[c.avgActualDays,"j"]}):"â"}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:406",className:"text-xs text-center",children:c.avgTheoreticalDays!==null?`${c.avgTheoreticalDays}j`:"â"}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:409",className:"text-xs text-center",children:c.avgDelta!==null?e.jsxs(k,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:411",variant:"outline",className:`text-xs ${we(c.avgDelta)}`,children:[c.avgDelta>0?"+":"",c.avgDelta,"j"]}):"â"}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:416",className:"text-xs text-center",children:c.maxDelta!==null?e.jsxs(k,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:418",variant:"outline",className:`text-xs ${we(c.maxDelta)}`,children:["+",c.maxDelta,"j"]}):"â"}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:423",className:"text-xs text-center",children:c.clientCount}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:424",className:"text-xs text-right font-medium",children:ee(c.totalAmount)}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:425",className:"text-xs text-center",children:e.jsx(k,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:426",variant:"outline",className:`text-xs ${Ee(c.riskLabel)}`,children:c.riskLabel})})]},c.perimetreName)),e.jsxs(F,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:433",className:"bg-muted/40 font-medium border-t-2",children:[e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:434",className:"text-xs font-bold",children:"TOTAL"}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:435",className:"text-xs text-center font-bold",children:x}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:436",className:"text-xs text-center font-bold text-green-600",children:v}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:437",className:"text-xs text-center font-bold text-red-600",children:S}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:438",className:"text-xs text-center font-bold text-amber-600",children:x-v}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:439",className:"text-xs text-center font-bold",children:e.jsxs("span",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:440",className:Y>=50?"text-red-600":Y>=25?"text-amber-600":"text-green-600",children:[Y,"%"]})}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:444",className:"text-xs text-center",children:"â"}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:445",className:"text-xs text-center",children:"â"}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:446",className:"text-xs text-center",children:"â"}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:447",className:"text-xs text-center",children:"â"}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:448",className:"text-xs text-center",children:"â"}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:449",className:"text-xs text-right font-bold",children:ee(O)}),e.jsx(y,{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:450",className:"text-xs text-center",children:"â"})]})]})]})}),e.jsxs("div",{"data-loc":"client/src/pages/payments/PerimeterAnalysis.tsx:455",className:"text-xs text-muted-foreground",children:[t.length," périmètre",t.length>
81?"s":""," analysé",t.length>1?"s":""]})]})}function Jn(){const{user:t,loading:a}=va(),[,n]=Na(),l=ka(t?.role),{theme:r}=be(),d=r==="dark"||r==="system"&&window.matchMedia("(prefers-color-scheme: dark)").matches,h=new Date().getFullYear(),u="payments_filters",b=T.useMemo(()=>{try{const g=localStorage.getItem(u);if(g)return JSON.parse(g)}catch{}return null},[]),[f,D]=T.useState(b?.year??h),[i,j]=T.useState(b?.agencyIds??[]),[N,p]=T.useState(b?.startMonth??1),[P,o]=T.useState(b?.endMonth??12),[s,m]=T.useState(b?.activeTab??"clients"),[x,v]=T.useState(""),[S,O]=T.useState(!1),[Y,ge]=T.useState(!1),[R,Ee]=T.useState(b?.selectedClientId??"");T.useEffect(()=>{try{localStorage.setItem(u,JSON.stringify({year:f,agencyIds:i,startMonth:N,endMonth:P,activeTab:s,selectedClientId:R}))}catch{}},[f,i,N,P,s,R]);const c=f-1,A=T.useMemo(()=>({year:f,agencyIds:i.length>0?i:void 0,startMonth:N,endMonth:P}),[f,i,N,P]),J=T.useMemo(()=>({year:f,agencyIds:i.length>0?i:void 0,startMonth:N,endMonth:P}),[f,i,N,P]),De=T.useMemo(()=>({year:c,agencyIds:i.length>0?i:void 0,startMonth:N,endMonth:P}),[c,i,N,P]),Se=T.useMemo(()=>({year:c,agencyIds:i.length>0?i:void 0,startMonth:N,endMonth:P}),[c,i,N,P]),{data:_,isLoading:z}=ce.payments.getClientPaymentTerms.useQuery(A,{staleTime:60*1e3}),{data:Q,isLoading:Tt}=ce.payments.getSupplierPaymentTerms.useQuery(J,{staleTime:60*1e3}),{data:st}=ce.payments.getClientPaymentTerms.useQuery(De,{staleTime:300*1e3}),{data:nt}=ce.payments.getSupplierPaymentTerms.useQuery(Se,{staleTime:300*1e3}),{data:ue}=ce.payments.getAgencies.useQuery(void 0,{staleTime:300*1e3}),pa=T.useMemo(()=>({year:f,agencyIds:i.length>0?i:void 0,startMonth:N,endMonth:P}),[f,i,N,P]),{data:M,isLoading:Me}=ce.payments.getInvoicePaymentComparison.useQuery(pa,{staleTime:60*1e3,enabled:s==="invoices"||s==="perimeter"}),lt=z||Tt,he=N===1&&P===12?`${f}`:`${We[N-1]} â ${We[P-1]} ${f}`,rt=T.useRef(null),[wt,kt]=T.useState(!1),ya=T.useCallback(async()=>{if(rt.current){kt(!0),H.info("Génération du PDF en cours...");try{const g=rt.current,I=await Dt(g,{scale:2,useCORS:!0,logging:!1,backgroundColor:d?"#1e293b":"#ffffff",windowWidth:g.scrollWidth,windowHeight:g.scrollHeight}),X=I.toDataURL("image/png"),q=I.width,w=I.height,E=new Ea({orientation:q>w?"landscape":"portrait",unit:"mm",format:"a4"}),ct=E.internal.pageSize.getWidth(),ga=E.internal.pageSize.getHeight(),Fe=10,It=ct-2*Fe,Ye=It/q,ha=w*Ye;let it=0,_e=0;for(;it<ha;){_e>0&&E.addPage(),E.setFontSize(8),E.setTextColor(150),E.text(`Paiements â ${he} | Page ${_e+1}`,Fe,6);const Et=it/Ye,ze=Math.min((ga-Fe-8)/Ye,w-Et),Mt=ze*Ye,qe=document.createElement("canvas");qe.width=q,qe.height=ze;const Rt=qe.getContext("2d");if(Rt){Rt.drawImage(I,0,Et,q,ze,0,0,q,ze);const fa=qe.toDataURL("image/png");E.addImage(fa,"PNG",Fe,8,It,Mt)}if(it+=Mt,_e++,_e>20)break}E.save(`paiements_${s}_${f}.pdf`),H.success("PDF téléchargé")}catch(g){console.error("PDF export error:",g),H.error("Erreur lors de l'export PDF")}finally{kt(!1)}}},[s,f,he]),ua=()=>{try{let g="";if(s==="clients"&&_?.clients){g=`Client;Commandes;Délai moyen (j);Condition principale;CA commandé;CA facturé 9`;for(const w of _.clients)g+=`"${w.clientName}";${w.orderCount};${w.avgPaymentDays};"${w.dominantPaymentTerm}";${w.totalOrdered};${w.totalInvoiced} 10`;g+=` 11Détail par commande 12`,g+=`Client;Projet;N° commande;Date;Périmètre;Condition;Délai (j);CA commandé;CA facturé 13`;for(const w of _.clients)for(const E of w.orders)g+=`"${w.clientName}";"${E.projectName}";"${E.orderNumber}";"${E.orderDate}";"${E.perimetreName}";"${E.paymentTermLabel}";${E.paymentTermDays};${E.amountOrdered};${E.amountInvoiced} 14`}else if(s==="suppliers"&&Q?.suppliers){g=`Fournisseur;Achats;Délai moyen (j);Condition principale;Montant total HT 15`;for(const w of Q.suppliers)g+=`"${w.supplierName}";${w.purchaseCount};${w.avgPaymentDays};"${w.dominantPaymentTerm}";${w.totalAmount} 16`;g+=` 17Détail par achat 18`,g+=`Fournisseur;Titre;Référence;Date;Périmètre;Condition;Délai (j);Montant HT 19`;for(const w of Q.suppliers)for(const E of w.purchases)g+=`"${w.supplierName}";"${E.purchaseTitle}";"${E.reference}";"${E.purchaseDate}";"${E.perimetreName}";"${E.paymentTermLabel}";${E.paymentTermDays};${E.totalAmountHT} 20`}else if(s==="invoices"&&M?.invoices){g=`Réf. facture;Date facture;Client;Projet;Commande;Périmètre;Condition;Délai réel (j);Délai théorique (j);Ãcart (j);Montant HT;Ãtat;Date règlement 21`;for(const w of M.invoices){const E=da(w.state).label;g+=`"${w.invoiceRef}";"${w.invoiceDate}";"${w.clientName}";"${w.projectName}";"${w.orderNumber}";"${w.perimetreName}";"${w.paymentTermLabel}";${w.actualDays??""};${w.paymentTermDays};${w.delta??""};${w.amountHT};"${E}";"${w.performedPaymentDate}" 22`}}const I=new Blob(["\uFEFF"+g],{type:"text/csv;charset=utf-8;"}),X=URL.createObjectURL(I),q=document.createElement("a");q.href=X,q.download=`paiements_${s}_${f}.csv`,q.click(),URL.revokeObjectURL(X),H.success("Export CSV téléchargé")}catch{H.error("Erreur lors de l'export")}};return a?e.jsx(Ot,{"data-loc":"client/src/pages/Payments.tsx:327",navItems:l,children:e.jsx("div",{"data-loc":"client/src/pages/Payments.tsx:328",className:"flex items-center justify-center h-64",children:e.jsx(Ae,{"data-loc":"client/src/pages/Payments.tsx:329",className:"h-8 w-8 animate-spin text-muted-foreground"})})}):e.jsx(Ot,{"data-loc":"client/src/pages/Payments.tsx:336",navItems:l,children:e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:337",className:"p-4 md:p-6 space-y-6 max-w-[1600px] mx-auto",children:[e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:339",className:"flex flex-col gap-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:340",children:[e.jsxs("h1",{"data-loc":"client/src/pages/Payments.tsx:341",className:"text-2xl font-bold tracking-tight flex items-center gap-2",children:[e.jsx(Ia,{"data-loc":"client/src/pages/Payments.tsx:342",className:"h-6 w-6 text-primary"}),"Paiements"]}),e.jsxs("p",{"data-loc":"client/src/pages/Payments.tsx:345",className:"text-sm text-muted-foreground mt-1",children:["Conditions de règlement et délais de paiement clients et fournisseurs â ",he]})]}),e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:351",className:"flex flex-wrap items-center gap-3",children:[e.jsxs(mt,{"data-loc":"client/src/pages/Payments.tsx:352",value:f.toString(),onValueChange:g=>D(parseInt(g)),children:[e.jsx(dt,{"data-loc":"client/src/pages/Payments.tsx:353",className:"w-[100px]",children:e.jsx(xt,{"data-loc":"client/src/pages/Payments.tsx:354"})}),e.jsx(pt,{"data-loc":"client/src/pages/Payments.tsx:356",children:[2023,2024,2025,2026].map(g=>e.jsx(yt,{"data-loc":"client/src/pages/Payments.tsx:358",value:g.toString(),children:g},g))})]}),e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:363",className:"flex items-center gap-1.5",children:[e.jsx(Ga,{"data-loc":"client/src/pages/Payments.tsx:364",className:"h-4 w-4 text-muted-foreground"}),e.jsxs(mt,{"data-loc":"client/src/pages/Payments.tsx:365",value:N.toString(),onValueChange:g=>{const I=parseInt(g);p(I),I>P&&o(I)},children:[e.jsx(dt,{"data-loc":"client/src/pages/Payments.tsx:370",className:"w-[130px]",children:e.jsx(xt,{"data-loc":"client/src/pages/Payments.tsx:371"})}),e.jsx(pt,{"data-loc":"client/src/pages/Payments.tsx:373",children:We.map((g,I)=>e.jsx(yt,{"data-loc":"client/src/pages/Payments.tsx:375",value:(I+1).toString(),children:g},I+1))})]}),e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:379",className:"text-muted-foreground text-sm",children:"à "}),e.jsxs(mt,{"data-loc":"client/src/pages/Payments.tsx:380",value:P.toString(),onValueChange:g=>{const I=parseInt(g);o(I),I<N&&p(I)},children:[e.jsx(dt,{"data-loc":"client/src/pages/Payments.tsx:385",className:"w-[130px]",children:e.jsx(xt,{"data-loc":"client/src/pages/Payments.tsx:386"})}),e.jsx(pt,{"data-loc":"client/src/pages/Payments.tsx:388",children:We.map((g,I)=>e.jsx(yt,{"data-loc":"client/src/pages/Payments.tsx:390",value:(I+1).toString(),disabled:I+1<N,children:g},I+1))})]})]}),e.jsxs(Kt,{"data-loc":"client/src/pages/Payments.tsx:396",children:[e.jsx(Ft,{"data-loc":"client/src/pages/Payments.tsx:397",asChild:!0,children:e.jsxs(V,{"data-loc":"client/src/pages/Payments.tsx:398",variant:"outline",className:"w-[260px] justify-between text-left font-normal",children:[e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:399",className:"flex items-center gap-2 truncate",children:[e.jsx(Ja,{"data-loc":"client/src/pages/Payments.tsx:400",className:"h-4 w-4 text-muted-foreground shrink-0"}),e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:401",className:"truncate",children:i.length===0?"Tous les périmètres":i.length===1?ue?.find(g=>g.id===i[0])?.name||"1 périmètre":`${i.length} périmètres`})]}),e.jsx(Ut,{"data-loc":"client/src/pages/Payments.tsx:409",className:"h-4 w-4 text-muted-foreground shrink-0"})]})}),e.jsxs(Yt,{"data-loc":"client/src/pages/Payments.tsx:412",className:"w-[260px] p-0",align:"start",children:[e.jsx("div",{"data-loc":"client/src/pages/Payments.tsx:413",className:"p-2 border-b",children:e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:414",className:"flex items-center justify-between",children:[e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:415",className:"text-sm font-medium",children:"Périmètres"}),i.length>0&&e.jsxs(V,{"data-loc":"client/src/pages/Payments.tsx:417",variant:"ghost",size:"sm",className:"h-6 px-2 text-xs text-muted-foreground hover:text-foreground",onClick:()=>j([]),children:[e.jsx(ot,{"data-loc":"client/src/pages/Payments.tsx:423",className:"h-3 w-3 mr-1"}),"Effacer"]})]})}),e.jsx("div",{"data-loc":"client/src/pages/Payments.tsx:429",className:"max-h-[280px] overflow-y-auto p-1",children:ue?.map(g=>{const I=i.includes(g.id);return e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:433",className:"flex items-center gap-2 px-2 py-1.5 rounded-sm cursor-pointer hover:bg-accent",onClick:()=>{j(X=>I?X.filter(q=>q!==g.id):[...X,g.id])},children:[e.jsx(Ta,{"data-loc":"client/src/pages/Payments.tsx:444",checked:I,className:"pointer-events-none"}),e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:445",className:"text-sm",children:g.name})]},g.id)})}),ue&&ue.length>0&&e.jsx("div",{"data-loc":"client/src/pages/Payments.tsx:451",className:"p-2 border-t",children:e.jsxs(V,{"data-loc":"client/src/pages/Payments.tsx:452",variant:"ghost",size:"sm",className:"w-full h-7 text-xs",onClick:()=>{i.length===ue.length?j([]):j(ue.map(g=>g.id))},children:[e.jsx(gt,{"data-loc":"client/src/pages/Payments.tsx:464",className:"h-3 w-3 mr-1"}),i.length===ue?.length?"Désélectionner tout":"Sélectionner tout"]})})]})]}),i.length>0&&i.length<=3&&e.jsx("div",{"data-loc":"client/src/pages/Payments.tsx:474",className:"flex flex-wrap items-center gap-1",children:i.map(g=>{const I=ue?.find(X=>X.id===g);return I?e.jsxs(k,{"data-loc":"client/src/pages/Payments.tsx:478",variant:"secondary",className:"text-xs gap-1 pl-2 pr-1",children:[I.name,e.jsx("button",{"data-loc":"client/src/pages/Payments.tsx:480",onClick:()=>j(X=>X.filter(q=>q!==g)),className:"ml-0.5 rounded-full hover:bg-muted-foreground
22/20 p-0.5",children:e.jsx(ot,{"data-loc":"client/src/pages/Payments.tsx:484",className:"h-3 w-3"})})]},g):null})}),e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:492",className:"relative flex-1 min-w-[200px] max-w-[300px]",children:[e.jsx(Qa,{"data-loc":"client/src/pages/Payments.tsx:493",className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(Lt,{"data-loc":"client/src/pages/Payments.tsx:494",placeholder:"Rechercher un client ou fournisseur...",value:x,onChange:g=>v(g.target.value),className:"pl-9"})]}),e.jsxs(V,{"data-loc":"client/src/pages/Payments.tsx:502",variant:"outline",size:"sm",onClick:ua,disabled:lt,children:[e.jsx(St,{"data-loc":"client/src/pages/Payments.tsx:503",className:"h-4 w-4 mr-2"}),"CSV"]}),e.jsxs(V,{"data-loc":"client/src/pages/Payments.tsx:507",variant:"outline",size:"sm",onClick:ya,disabled:lt||wt,children:[wt?e.jsx(Ae,{"data-loc":"client/src/pages/Payments.tsx:508",className:"h-4 w-4 mr-2 animate-spin"}):e.jsx(Xa,{"data-loc":"client/src/pages/Payments.tsx:508",className:"h-4 w-4 mr-2"}),"PDF"]}),e.jsxs(V,{"data-loc":"client/src/pages/Payments.tsx:512",variant:S?"default":"outline",size:"sm",onClick:()=>O(!S),className:S?"bg-red-600 hover:bg-red-700 text-white":"",children:[e.jsx(ke,{"data-loc":"client/src/pages/Payments.tsx:518",className:"h-4 w-4 mr-2"}),"Dégradés N-1"]}),t?.role==="admin"&&e.jsx(Ls,{"data-loc":"client/src/pages/Payments.tsx:523"})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:528",ref:rt,className:"space-y-6",children:[e.jsx(ws,{"data-loc":"client/src/pages/Payments.tsx:530",clientData:_,supplierData:Q,prevClientData:st,prevSupplierData:nt,isLoading:lt,selectedYear:f}),e.jsx(Es,{"data-loc":"client/src/pages/Payments.tsx:540",clientData:_,supplierData:Q,prevClientData:st,prevSupplierData:nt,activeTab:s,selectedYear:f}),e.jsx(Is,{"data-loc":"client/src/pages/Payments.tsx:550",clientEvolution:_?.monthlyEvolution||[],supplierEvolution:Q?.monthlyEvolution||[],activeTab:s,year:f}),e.jsx(ks,{"data-loc":"client/src/pages/Payments.tsx:558",clientByPerimetre:_?.byPerimetre||[],supplierByPerimetre:Q?.byPerimetre||[],activeTab:s}),e.jsxs(Da,{"data-loc":"client/src/pages/Payments.tsx:565",value:s,onValueChange:m,children:[e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:566",className:"relative mb-4 max-w-full",children:[e.jsx("div",{"data-loc":"client/src/pages/Payments.tsx:567",className:"overflow-x-auto overscroll-x-contain pb-1",children:e.jsxs(Sa,{"data-loc":"client/src/pages/Payments.tsx:568",className:"w-max",children:[e.jsxs(Be,{"data-loc":"client/src/pages/Payments.tsx:569",value:"clients",className:"gap-2",children:[e.jsx(jt,{"data-loc":"client/src/pages/Payments.tsx:570",className:"h-4 w-4"}),"Clients",_&&e.jsx(k,{"data-loc":"client/src/pages/Payments.tsx:573",variant:"secondary",className:"ml-1 text-xs",children:_.clients.length})]}),e.jsxs(Be,{"data-loc":"client/src/pages/Payments.tsx:578",value:"suppliers",className:"gap-2",children:[e.jsx(Pt,{"data-loc":"client/src/pages/Payments.tsx:579",className:"h-4 w-4"}),"Fournisseurs",Q&&e.jsx(k,{"data-loc":"client/src/pages/Payments.tsx:582",variant:"secondary",className:"ml-1 text-xs",children:Q.suppliers.length})]}),e.jsxs(Be,{"data-loc":"client/src/pages/Payments.tsx:587",value:"invoices",className:"gap-2",children:[e.jsx(vt,{"data-loc":"client/src/pages/Payments.tsx:588",className:"h-4 w-4"}),"Délais réels",M&&e.jsx(k,{"data-loc":"client/src/pages/Payments.tsx:591",variant:"secondary",className:"ml-1 text-xs",children:M.totalInvoices})]}),e.jsxs(Be,{"data-loc":"client/src/pages/Payments.tsx:596",value:"perimeter",className:"gap-2",children:[e.jsx(Vt,{"data-loc":"client/src/pages/Payments.tsx:597",className:"h-4 w-4"}),"Analyse par périmètre",M?.perimetreStats&&e.jsx(k,{"data-loc":"client/src/pages/Payments.tsx:600",variant:"secondary",className:"ml-1 text-xs",children:M.perimetreStats.length})]})]})}),e.jsx("div",{"data-loc":"client/src/pages/Payments.tsx:607","aria-hidden":"true",className:"pointer-events-none absolute inset-y-0 right-0 w-8 bg-gradient-to-l from-background to-transparent sm:hidden"})]}),(()=>{const g=(_?.excludedCount||0)+(Q?.excludedCount||0)+(M?.excludedCount||0),I=_?.excludedPatterns||Q?.excludedPatterns||M?.excludedPatterns||[];if(g===0&&I.length===0)return null;const X=t?.role==="admin",q=e.jsxs(e.Fragment,{children:[e.jsx(oe,{"data-loc":"client/src/pages/Payments.tsx:621",className:"h-3.5 w-3.5 flex-shrink-0"}),e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:622",className:"flex-1",children:I.length>0?e.jsxs(e.Fragment,{children:[I.length," société",I.length>
221?"s":""," exclue",I.length>1?"s":""," des analyses (",I.map(w=>e.jsxs("span",{"data-loc":"client/src/pages/Payments.tsx:625",className:"font-medium",children:["« ",w," »"]},w)).reduce((w,E,ct)=>ct===0?[E]:[...w,", ",E],[]),")",g>0&&e.jsxs(e.Fragment,{children:[" â ",g," enregistrement",g>1?"s":""," filtré",g>1?"s":""]})]}):e.jsxs(e.Fragment,{children:[g," enregistrement",g>1?"s":""," exclu",g>1?"s":""]})})]});return X?e.jsxs("button",{"data-loc":"client/src/pages/Payments.tsx:636",onClick:()=>n("/admin/settings#excluded-companies"),className:"flex items-center gap-2 text-xs text-muted-foreground bg-muted/50 hover:bg-muted rounded-md px-3 py-1.5 mb-3 transition-colors cursor-pointer group w-full text-left",children:[q,e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:641",className:"text-muted-foreground/60 group-hover:text-foreground transition-colors text-[11px]",children:"Gérer â"})]}):e.jsx("div",{"data-loc":"client/src/pages/Payments.tsx:646",className:"flex items-center gap-2 text-xs text-muted-foreground bg-muted/50 rounded-md px-3 py-1.5 mb-3",children:q})})(),e.jsx(Ve,{"data-loc":"client/src/pages/Payments.tsx:652",value:"clients",children:e.jsxs(L,{"data-loc":"client/src/pages/Payments.tsx:653",children:[e.jsx(me,{"data-loc":"client/src/pages/Payments.tsx:654",className:"pb-3",children:e.jsxs(de,{"data-loc":"client/src/pages/Payments.tsx:655",className:"text-base flex items-center gap-2",children:[e.jsx(jt,{"data-loc":"client/src/pages/Payments.tsx:656",className:"h-5 w-5 text-blue-500"}),"Délais de paiement client â ",he,e.jsxs(te,{"data-loc":"client/src/pages/Payments.tsx:658",children:[e.jsx(ae,{"data-loc":"client/src/pages/Payments.tsx:659",children:e.jsx(oe,{"data-loc":"client/src/pages/Payments.tsx:660",className:"h-4 w-4 text-muted-foreground"})}),e.jsx(se,{"data-loc":"client/src/pages/Payments.tsx:662",className:"max-w-xs",children:e.jsxs("p",{"data-loc":"client/src/pages/Payments.tsx:663",children:["Conditions de règlement extraites des commandes BoondManager. Les indicateurs de variation comparent avec ",c,". Cliquez sur un client pour voir le détail."]})})]})]})}),e.jsx(K,{"data-loc":"client/src/pages/Payments.tsx:668",className:"p-0",children:z?e.jsx("div",{"data-loc":"client/src/pages/Payments.tsx:670",className:"flex items-center justify-center py-12",children:e.jsx(Ae,{"data-loc":"client/src/pages/Payments.tsx:671",className:"h-8 w-8 animate-spin text-muted-foreground"})}):e.jsx(As,{"data-loc":"client/src/pages/Payments.tsx:674",data:_,prevData:st,search:x,selectedYear:f,showDegradedOnly:S})})]})}),e.jsx(Ve,{"data-loc":"client/src/pages/Payments.tsx:680",value:"suppliers",children:e.jsxs(L,{"data-loc":"client/src/pages/Payments.tsx:681",children:[e.jsx(me,{"data-loc":"client/src/pages/Payments.tsx:682",className:"pb-3",children:e.jsxs(de,{"data-loc":"client/src/pages/Payments.tsx:683",className:"text-base flex items-center gap-2",children:[e.jsx(Pt,{"data-loc":"client/src/pages/Payments.tsx:684",className:"h-5 w-5 text-orange-500"}),"Délais de paiement fournisseur â ",he,e.jsxs(te,{"data-loc":"client/src/pages/Payments.tsx:686",children:[e.jsx(ae,{"data-loc":"client/src/pages/Payments.tsx:687",children:e.jsx(oe,{"data-loc":"client/src/pages/Payments.tsx:688",className:"h-4 w-4 text-muted-foreground"})}),e.jsx(se,{"data-loc":"client/src/pages/Payments.tsx:690",className:"max-w-xs",children:e.jsxs("p",{"data-loc":"client/src/pages/Payments.tsx:691",children:["Conditions de règlement extraites des achats BoondManager. Les indicateurs de variation comparent avec ",c,". Cliquez sur un fournisseur pour voir le détail."]})})]})]})}),e.jsx(K,{"data-loc":"client/src/pages/Payments.tsx:696",className:"p-0",children:Tt?e.jsx("div",{"data-loc":"client/src/pages/Payments.tsx:698",className:"flex items-center justify-center py-12",children:e.jsx(Ae,{"data-loc":"client/src/pages/Payments.tsx:699",className:"h-8 w-8 animate-spin text-muted-foreground"})}):e.jsx(Ts,{"data-loc":"client/src/pages/Payments.tsx:702",data:Q,prevData:nt,search:x,selectedYear:f,showDegradedOnly:S})})]})}),e.jsx(Ve,{"data-loc":"client/src/pages/Payments.tsx:708",value:"invoices",children:e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:709",className:"space-y-4",children:[!Me&&M?.clientStats&&M.clientStats.length>0&&e.jsx(L,{"data-loc":"client/src/pages/Payments.tsx:712",children:e.jsx(K,{"data-loc":"client/src/pages/Payments.tsx:713",className:"p-4",children:e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:714",className:"flex flex-wrap items-center gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:715",className:"flex items-center gap-2",children:[e.jsx(na,{"data-loc":"client/src/pages/Payments.tsx:716",className:"h-4 w-4 text-muted-foreground"}),e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:717",className:"text-sm font-medium",children:"Filtrer par client :"})]}),e.jsxs(Kt,{"data-loc":"client/src/pages/Payments.tsx:719",children:[e.jsx(Ft,{"data-loc":"client/src/pages/Payments.tsx:720",asChild:!0,children:e.jsxs(V,{"data-loc":"client/src/pages/Payments.tsx:721",variant:"outline",className:"w-[300px] justify-between text-left font-normal",children:[e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:722",className:"truncate",children:R?M.clientStats.find(g=>
22g.clientId===R)?.clientName||"Client inconnu":"Tous les clients"}),e.jsx(Ut,{"data-loc":"client/src/pages/Payments.tsx:727",className:"h-4 w-4 text-muted-foreground shrink-0"})]})}),e.jsxs(Yt,{"data-loc":"client/src/pages/Payments.tsx:730",className:"w-[300px] p-0",align:"start",children:[e.jsx("div",{"data-loc":"client/src/pages/Payments.tsx:731",className:"p-2 border-b",children:e.jsx(Lt,{"data-loc":"client/src/pages/Payments.tsx:732",placeholder:"Rechercher un client...",className:"h-8",onChange:g=>{g.target.closest(".popover-client-search")?.querySelector("input"),g.target.setAttribute("data-search",g.target.value)},id:"client-filter-search"})}),e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:743",className:"max-h-[300px] overflow-y-auto",children:[e.jsxs("button",{"data-loc":"client/src/pages/Payments.tsx:744",className:`w-full text-left px-3 py-2 text-sm hover:bg-accent flex items-center gap-2 ${R?"":"bg-accent font-medium"}`,onClick:()=>Ee(""),children:[e.jsx(gt,{"data-loc":"client/src/pages/Payments.tsx:748",className:`h-3.5 w-3.5 ${R?"opacity-0":"opacity-100"}`}),"Tous les clients"]}),[...M.clientStats].sort((g,I)=>g.clientName.localeCompare(I.clientName)).map(g=>e.jsxs("button",{"data-loc":"client/src/pages/Payments.tsx:754",className:`w-full text-left px-3 py-2 text-sm hover:bg-accent flex items-center gap-2 ${R===g.clientId?"bg-accent font-medium":""}`,onClick:()=>Ee(R===g.clientId?"":g.clientId),children:[e.jsx(gt,{"data-loc":"client/src/pages/Payments.tsx:759",className:`h-3.5 w-3.5 ${R===g.clientId?"opacity-100":"opacity-0"}`}),e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:760",className:"truncate flex-1",children:g.clientName}),e.jsxs("span",{"data-loc":"client/src/pages/Payments.tsx:761",className:"text-xs text-muted-foreground",children:[g.invoiceCount," fact."]})]},g.clientId))]})]})]}),R&&e.jsxs(k,{"data-loc":"client/src/pages/Payments.tsx:768",variant:"secondary",className:"text-xs gap-1 pl-2 pr-1",children:[M.clientStats.find(g=>g.clientId===R)?.clientName,e.jsx("button",{"data-loc":"client/src/pages/Payments.tsx:770",onClick:()=>Ee(""),className:"ml-0.5 rounded-full hover:bg-muted-foreground/20 p-0.5",children:e.jsx(ot,{"data-loc":"client/src/pages/Payments.tsx:774",className:"h-3 w-3"})})]})]})})}),!Me&&M?.monthlyEvolution&&e.jsx(Rs,{"data-loc":"client/src/pages/Payments.tsx:785",monthlyEvolution:M.monthlyEvolution,selectedClientId:R,invoices:M?.invoices}),!Me&&M?.clientStats&&e.jsx(xa,{"data-loc":"client/src/pages/Payments.tsx:794",clientStats:R?M.clientStats.filter(g=>g.clientId===R):M.clientStats}),e.jsxs(L,{"data-loc":"client/src/pages/Payments.tsx:803",children:[e.jsx(me,{"data-loc":"client/src/pages/Payments.tsx:804",className:"pb-3",children:e.jsxs(de,{"data-loc":"client/src/pages/Payments.tsx:805",className:"text-base flex items-center gap-2",children:[e.jsx(vt,{"data-loc":"client/src/pages/Payments.tsx:806",className:"h-5 w-5 text-purple-500"}),"Délais réels de paiement des factures â ",he,R&&e.jsx(k,{"data-loc":"client/src/pages/Payments.tsx:809",variant:"outline",className:"text-xs",children:M?.clientStats?.find(g=>g.clientId===R)?.clientName}),e.jsxs(te,{"data-loc":"client/src/pages/Payments.tsx:813",children:[e.jsx(ae,{"data-loc":"client/src/pages/Payments.tsx:814",children:e.jsx(oe,{"data-loc":"client/src/pages/Payments.tsx:815",className:"h-4 w-4 text-muted-foreground"})}),e.jsx(se,{"data-loc":"client/src/pages/Payments.tsx:817",className:"max-w-xs",children:e.jsx("p",{"data-loc":"client/src/pages/Payments.tsx:818",children:"Comparaison entre le délai réel (date règlement - date facture) et le délai théorique (conditions de règlement de la commande). Un écart positif indique un retard de paiement."})})]}),s==="invoices"&&e.jsxs(V,{"data-loc":"client/src/pages/Payments.tsx:822",variant:Y?"default":"outline",size:"sm",onClick:()=>ge(!Y),className:`ml-auto ${Y?"bg-red-600 hover:bg-red-700 text-white":""}`,children:[e.jsx(Ct,{"data-loc":"client/src/pages/Payments.tsx:828",className:"h-4 w-4 mr-1"}),"Retards uniquement"]})]})}),e.jsx(K,{"data-loc":"client/src/pages/Payments.tsx:834",className:"p-0",children:Me?e.jsx(Zt,{"data-loc":"client/src/pages/Payments.tsx:836"}):e.jsx($s,{"data-loc":"client/src/pages/Payments.tsx:838",data:M,search:x,onlyLate:Y,selectedClientId:R})})]})]})}),e.jsx(Ve,{"data-loc":"client/src/pages/Payments.tsx:845",value:"perimeter",children:e.jsxs(L,{"data-loc":"client/src/pages/Payments.tsx:846",children:[e.jsx(me,{"data-loc":"client/src/pages/Payments.tsx:847",className:"pb-3",children:e.jsxs(de,{"data-loc":"client/src/pages/Payments.tsx:848",className:"text-base flex items-center gap-2",children:[e.jsx(Vt,{"data-loc":"client/src/pages/Payments.tsx:849",className:"h-5 w-5 text-indigo-500"}),"Analyse par périmètre â ",he,e.jsxs(te,{"data-loc":"client/src/pages/Payments.tsx:851",children:[e.jsx(ae,{"data-loc":"client/src/pages/Payments.tsx:852",children:e.jsx(oe,{"data-loc":"client/src/pages/Payments.tsx:853",className:"h-4 w-4 text-muted-foreground"})}),e.jsx(se,{"data-loc":"client/src/pages/Payments.tsx:855",className:"max-w-xs",children:e.jsx("p",{"data-loc":"client/src/pages/Payments.tsx:856",children:"Comparaison des performances de paiement entre les différentes agences/périmètres. Les métriques incluent les délais réels, taux de retard, volumes et niveaux de risque."})})]})]})}),e.jsx(K,{"data-loc":"client/src/pages/Payments.tsx:861",children:Me?e.jsx(Zt,{"data-loc":"client/src/pages/Payments.tsx:863"}):e.jsx(Os,{"data-loc":"client/src/pages/Payments.tsx:865",perimetreStats:M?.perimetreStats||[]})})]})})]})]}),e.jsx(L,{"data-loc":"client/src/pages/Payments.tsx:875",className:"bg-muted/30",children:e.jsx(K,{"data-loc":"client/src/pages/Payments.tsx:876",className:"p-4",children:e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:877",className:"flex flex-wrap items-center gap-4 text-sm",children:[e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:878",className:"font-medium text-muted-foreground",children:"Légende délais :"}),e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:879",className:"flex items-center gap-1.5",children:[e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:880",className:"inline-block w-3 h-3 rounded-full bg-green-500"}),e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:881",children:"Comptant (0j)"})]}),e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:883",className:"flex items-center gap-1.5",children:[e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:884",className:"inline-block w-3 h-3 rounded-full bg-blue-500"}),e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:885",children:"⤠30 jours"})]}),e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:887",className:"flex items-center gap-1.5",children:[e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:888",className:"inline-block w-3 h-3 rounded-full bg-amber-500"}),e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:889",children:"31-45 jours"})]}),e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:891",className:"flex items-center gap-1.5",children:[e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:892",className:"inline-block w-3 h-3 rounded-full bg-red-500"}),e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:893",children:"> 45 jours"})]}),e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:895",className:"text-muted-foreground",children:"|"}),e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:896",className:"font-medium text-muted-foreground",children:"Ãcarts factures :"}),e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:897",className:"flex items-center gap-1.5",children:[e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:898",className:"inline-block w-3 h-3 rounded-full bg-green-500"}),e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:899",children:"⤠-5j (en avance)"})]}),e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:901",className:"flex items-center gap-1.5",children:[e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:902",className:"inline-block w-3 h-3 rounded-full bg-blue-500"}),e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:903",children:"±5j (conforme)"})]}),e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:905",className:"flex items-center gap-1.5",children:[e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:906",className:"inline-block w-3 h-3 rounded-full bg-amber-500"}),e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:907",children:"+6 à +15j (retard)"})]}),e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:909",className:"flex items-center gap-1.5",children:[e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:910",className:"inline-block w-3 h-3 rounded-full bg-red-500"}),e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:911",children:"> +15j (retard important)"})]}),e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:913",className:"text-muted-foreground",children:"|"}),e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:914",className:"font-medium text-muted-foreground",children:"Variations N vs N-1 :"}),e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:915",className:"flex items-center gap-1",children:[e.jsx(ta,{"data-loc":"client/src/pages/Payments.tsx:916",className:"h-3 w-3 text-green-600"}),e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:917",className:"text-green-600 text-xs",children:"Amélioration"})]}),e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:919",className:"flex items-center gap-1",children:[e.jsx(ke,{"data-loc":"client/src/pages/Payments.tsx:920",className:"h-3 w-3 text-red-600"}),e.jsx("span",{"data-loc":"client/src/pages/Payments.tsx:921",className:"text-red-600 text-xs",children:"Dégradation"})]})]})})})]})})}function Zt(){const{data:t}=ce.payments.getInvoicesCacheInfo.useQuery(void 0,{refetchInterval:1e3}),a=t?.progress,n=a&&a.totalPages>0?Math.round(a.pagesLoaded/a.totalPages*100):0,l=a?Math.round(a.elapsedMs/1e3):0;return e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:946",className:"flex flex-col items-center justify-center py-12 gap-4",children:[e.jsx(Ae,{"data-loc":"client/src/pages/Payments.tsx:947",className:"h-8 w-8 animate-spin text-muted-foreground"}),a&&a.totalPages>
221?e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:949",className:"w-64 space-y-2",children:[e.jsx(Aa,{"data-loc":"client/src/pages/Payments.tsx:950",value:n,className:"h-2"}),e.jsxs("div",{"data-loc":"client/src/pages/Payments.tsx:951",className:"flex justify-between text-xs text-muted-foreground",children:[e.jsxs("span",{"data-loc":"client/src/pages/Payments.tsx:952",children:[a.pagesLoaded,"/",a.totalPages," pages"]}),e.jsxs("span",{"data-loc":"client/src/pages/Payments.tsx:953",children:[n,"%"]})]}),e.jsxs("p",{"data-loc":"client/src/pages/Payments.tsx:955",className:"text-xs text-muted-foreground text-center",children:["Chargement de ",a.totalRows.toLocaleString("fr-FR")," factures⦠(",l,"s)"]})]}):e.jsx("p",{"data-loc":"client/src/pages/Payments.tsx:960",className:"text-sm text-muted-foreground",children:"Chargement des facturesâ¦"})]})}function Ls(){const{data:t}=ce.payments.getInvoicesCacheInfo.useQuery(void 0,{refetchInterval:1e4}),a=ce.useUtils(),n=ce.payments.refreshInvoicesCache.useMutation({onSuccess:h=>{H.success(h.message),a.payments.getInvoicePaymentComparison.invalidate(),a.payments.getInvoicesCacheInfo.invalidate()},onError:h=>{H.error(`Erreur : ${h.message}`)}}),l=t?.lastUpdated?Wa(new Date(t.lastUpdated),{hour:"2-digit",minute:"2-digit"}):null,r=t?.progress,d=r&&r.totalPages>0?Math.round(r.pagesLoaded/r.totalPages*100):null;return e.jsxs(te,{"data-loc":"client/src/pages/Payments.tsx:995",children:[e.jsx(ae,{"data-loc":"client/src/pages/Payments.tsx:996",asChild:!0,children:e.jsxs(V,{"data-loc":"client/src/pages/Payments.tsx:997",variant:"outline",size:"sm",onClick:()=>n.mutate(),disabled:n.isPending||t?.isLoading,children:[n.isPending||t?.isLoading?e.jsx(Ae,{"data-loc":"client/src/pages/Payments.tsx:1004",className:"h-4 w-4 mr-2 animate-spin"}):e.jsx(Ca,{"data-loc":"client/src/pages/Payments.tsx:1005",className:"h-4 w-4 mr-2"}),t?.isLoading&&d!==null?`${d}%`:"Cache factures"]})}),e.jsx(se,{"data-loc":"client/src/pages/Payments.tsx:1013",children:t?.isLoading&&r?e.jsxs(e.Fragment,{children:[e.jsxs("p",{"data-loc":"client/src/pages/Payments.tsx:1016",children:["Chargement : ",r.pagesLoaded,"/",r.totalPages," pages (",d,"%)"]}),e.jsxs("p",{"data-loc":"client/src/pages/Payments.tsx:1017",className:"text-xs text-muted-foreground",children:[r.totalRows.toLocaleString("fr-FR")," factures"]})]}):e.jsxs(e.Fragment,{children:[e.jsx("p",{"data-loc":"client/src/pages/Payments.tsx:1021",children:t?.count?`${t.count.toLocaleString("fr-FR")} factures en cache`:"Cache vide"}),l&&e.jsxs("p",{"data-loc":"client/src/pages/Payments.tsx:1022",className:"text-xs text-muted-foreground",children:["Mis à jour à ",l]})]})})]})}export{Jn as default};
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.