@airporting/tech-app 0.0.178 → 0.0.180
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/mf/@mf-types.zip +0 -0
- package/dist/mf/__federation_expose_etat_saisie.js +1 -1
- package/dist/mf/index.css +73 -73
- package/dist/mf/index.js +3 -3
- package/dist/mf/mf-manifest.json +2 -2
- package/dist/mf/mf-stats.json +11 -11
- package/dist/mf/tech_app.js +3 -3
- package/package.json +1 -1
package/dist/mf/@mf-types.zip
CHANGED
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(globalThis["chunk_tech_app"]=globalThis["chunk_tech_app"]||[]).push([["7915"],{3437:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{D:()=>CompanyLogo});var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(5893);var _mantine_core__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(207);const BASE_URL="https://s3.dualstack.eu-west-3.amazonaws.com/media.airporting/companies";function CompanyLogo({slug,updatedAt,size=20,...rest}){const base=`${BASE_URL}/${slug}.png`;const url=updatedAt?`${base}?v=${new Date(updatedAt).getTime()}`:base;return/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mantine_core__WEBPACK_IMPORTED_MODULE_1__.Image,{src:url,fallbackSrc:`${BASE_URL}/undefined.png`,alt:slug??"",w:size,h:size,fit:"contain",radius:"sm",style:{aspectRatio:1},...rest})}},1354:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{m:()=>PageHeader});var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(5893);var _mantine_core__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(207);var _tabler_icons_react__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(9632);var react__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(5850);function formatRelative(now,then){const seconds=Math.max(0,Math.floor((now-then)/1e3));if(seconds<5)return"\xe0 l’instant";if(seconds<60)return`il y a ${seconds}s`;const minutes=Math.floor(seconds/60);if(minutes<60)return`il y a ${minutes} min`;const hours=Math.floor(minutes/60);return`il y a ${hours} h`}function PageHeader({title,leading,badge,updatedAt,isFetching,isError,onRefresh,actions}){const[now,setNow]=(0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(()=>Date.now());(0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(()=>{if(!updatedAt)return;const id=window.setInterval(()=>setNow(Date.now()),1e3);return()=>window.clearInterval(id)},[updatedAt]);const relative=updatedAt?formatRelative(now,updatedAt):null;const color=isError?"orange":isFetching?"teal":"dimmed";return/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mantine_core__WEBPACK_IMPORTED_MODULE_1__.Group,{justify:"space-between",align:"center",mih:48,mb:"md",children:[/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mantine_core__WEBPACK_IMPORTED_MODULE_1__.Group,{gap:"sm",align:"center",children:[leading,/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mantine_core__WEBPACK_IMPORTED_MODULE_1__.Title,{order:2,children:title}),badge]}),/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mantine_core__WEBPACK_IMPORTED_MODULE_1__.Group,{gap:"sm",align:"center",children:[relative&&/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mantine_core__WEBPACK_IMPORTED_MODULE_1__.Text,{size:"xs",c:color,fw:isFetching?600:400,"data-testid":"page-header-freshness",children:isError?"\xe9chec maj":isFetching?"maj…":relative}),onRefresh&&/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mantine_core__WEBPACK_IMPORTED_MODULE_1__.Tooltip,{label:"Rafra\xeechir",children:/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mantine_core__WEBPACK_IMPORTED_MODULE_1__.ActionIcon,{variant:"default",size:"md",onClick:onRefresh,loading:isFetching,"aria-label":"Refresh",children:/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_tabler_icons_react__WEBPACK_IMPORTED_MODULE_2__.IconRefresh,{size:16})})}),actions]})]})}},9781:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{h:()=>QuickBooksIcon});var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(5893);function QuickBooksIcon(props){const size=props.size??20;return/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("svg",{width:size,height:size,viewBox:"0 0 24 24",role:"img","aria-label":"QuickBooks",children:[/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("title",{children:"QuickBooks"}),/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("circle",{cx:"12",cy:"12",r:"12",fill:"#2CA01C"}),/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("text",{x:"12",y:"16.5",textAnchor:"middle",fontSize:"12",fontWeight:"700",fill:"#ffffff",fontFamily:"Arial, Helvetica, sans-serif",children:"qb"})]})}},243:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{j:()=>logoDevUrl});const LOGO_DEV_TOKEN="pk_BVN4OQv0Qs-bnqjdIgTppg";function logoDevUrl(domain){return`https://img.logo.dev/${domain}?token=${LOGO_DEV_TOKEN}`}},7229:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.r(__webpack_exports__);__webpack_require__.d(__webpack_exports__,{default:()=>EtatSaisie});var jsx_runtime=__webpack_require__(5893);var consume_shared_module_default_react_strict_=__webpack_require__(5850);var providers=__webpack_require__(7034);var index_mjs_=__webpack_require__(207);var esm_index_mjs_=__webpack_require__(3863);var tabler_icons_react_mjs_=__webpack_require__(9632);var index_js_=__webpack_require__(6197);var useApi=__webpack_require__(4148);function useEtatSaisieLatest(){const api=(0,useApi.h)();return(0,index_js_.useQuery)({queryKey:["tech","etat-saisie","latest"],queryFn:async()=>(await api.etatSaisie.getLatestV1()).data,staleTime:6e5,refetchOnWindowFocus:false})}function useEtatSaisieRecompute(){const api=(0,useApi.h)();const qc=(0,index_js_.useQueryClient)();return(0,index_js_.useMutation)({mutationFn:async()=>(await api.etatSaisie.recomputeV1()).data,onSuccess:()=>qc.invalidateQueries({queryKey:["tech","etat-saisie","latest"]})})}var notifications_esm_index_mjs_=__webpack_require__(1455);class PartialMuteSaveError extends Error{saved;total;cause;constructor(saved,total,cause){super(`${saved}/${total} changements enregistr\xe9s avant l'\xe9chec`);this.name="PartialMuteSaveError";this.saved=saved;this.total=total;this.cause=cause}}function useSaveReconciliationMutes(){const api=(0,useApi.h)();const qc=(0,index_js_.useQueryClient)();return(0,index_js_.useMutation)({mutationFn:async changes=>{let saved=0;for(const change of changes){try{await api.etatSaisie.setReconciliationMuteV1({company_id:change.company_id,account_id:change.account_id,muted:change.muted})}catch(err){throw new PartialMuteSaveError(saved,changes.length,err)}saved+=1}return saved},onSuccess:async saved=>{notifications_esm_index_mjs_.notifications.show({title:"Suivi des rappros",message:saved>1?`${saved} changements enregistr\xe9s`:"Changement enregistr\xe9",color:"teal"});await Promise.all([qc.invalidateQueries({queryKey:["tech","etat-saisie","dossiers"]}),qc.invalidateQueries({queryKey:["tech","etat-saisie","latest"]})])},onError:async err=>{const partial=err instanceof PartialMuteSaveError?err:null;notifications_esm_index_mjs_.notifications.show({title:"Suivi des rappros",message:partial?`${partial.saved} changement(s) sur ${partial.total} enregistr\xe9(s), les suivants ont \xe9chou\xe9`:err?.error?.error??err?.message??"Les changements n'ont pas \xe9t\xe9 enregistr\xe9s",color:"red"});if(partial&&partial.saved>0)await Promise.all([qc.invalidateQueries({queryKey:["tech","etat-saisie","dossiers"]}),qc.invalidateQueries({queryKey:["tech","etat-saisie","latest"]})])}})}function DetailTableInner(props){const{columns,rows,onRowClick,rowKey,maxHeight}=props;const[sortKey,setSortKey]=(0,consume_shared_module_default_react_strict_.useState)(null);const[asc,setAsc]=(0,consume_shared_module_default_react_strict_.useState)(false);const sortColumn=sortKey?columns.find(c=>c.key===sortKey):void 0;const sorted=[...rows].sort((a,b)=>{if(!sortKey)return 0;const av=sortColumn?.sortValue?sortColumn.sortValue(a):a[sortKey];const bv=sortColumn?.sortValue?sortColumn.sortValue(b):b[sortKey];if("number"==typeof av&&"number"==typeof bv)return asc?av-bv:bv-av;return asc?String(av).localeCompare(String(bv)):String(bv).localeCompare(String(av))});const toggle=k=>{if(sortKey===k)setAsc(v=>!v);else{setSortKey(k);setAsc(false)}};const fmt=(v,numeric)=>{if(numeric&&"number"==typeof v)return v.toLocaleString("fr-FR",{minimumFractionDigits:0,maximumFractionDigits:0});if("boolean"==typeof v)return v?"✓":"";if(null==v)return"-";if("object"==typeof v)return"-";return String(v)};const table=/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Table,{striped:true,highlightOnHover:true,withTableBorder:true,stickyHeader:true,fz:"sm",styles:{th:{fontSize:"var(--mantine-font-size-sm)"},td:{fontSize:"var(--mantine-font-size-sm)"}},children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Thead,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Tr,{children:columns.map(c=>/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Th,{onClick:()=>toggle(c.key),style:{cursor:"pointer"},children:/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:4,wrap:"nowrap",component:"span",display:"inline-flex",children:[/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:c.label}),c.hint?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tooltip,{label:c.hint,multiline:true,w:260,withArrow:true,children:/*#__PURE__*/(0,jsx_runtime.jsx)("span",{style:{display:"inline-flex",alignItems:"center"},onClick:e=>e.stopPropagation(),children:/*#__PURE__*/(0,jsx_runtime.jsx)(tabler_icons_react_mjs_.IconInfoCircle,{size:13})})}):null,/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:sortKey===c.key?asc?" ▲":" ▼":""})]})},c.key))})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Tbody,{children:0===sorted.length?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Tr,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Td,{colSpan:columns.length,children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{c:"dimmed",ta:"center",children:"Aucune ligne"})})}):sorted.map((row,i)=>/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Tr,{onClick:onRowClick?()=>onRowClick(row):void 0,style:onRowClick?{cursor:"pointer"}:void 0,children:columns.map(c=>/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Td,{onClick:c.onCellClick?event=>{event.stopPropagation();c.onCellClick?.(row)}:void 0,style:c.numeric||c.onCellClick?{...c.numeric?{textAlign:"right",fontVariantNumeric:"tabular-nums"}:{},...c.onCellClick&&(c.isCellClickable?.(row)??true)?{cursor:"pointer"}:{}}:void 0,children:c.render?c.render(row):fmt(row[c.key],c.numeric)},c.key))},rowKey?rowKey(row,i):i))})]});if(void 0===maxHeight)return table;return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.ScrollContainer,{minWidth:0,mah:maxHeight,type:"native",children:table})}const DetailTable=/*#__PURE__*/(0,consume_shared_module_default_react_strict_.memo)(DetailTableInner);function useDossiers(){const api=(0,useApi.h)();return(0,index_js_.useQuery)({queryKey:["tech","etat-saisie","dossiers"],queryFn:async()=>(await api.etatSaisie.getDossiersV1()).data,refetchOnWindowFocus:true})}function useSaveDossierAssignments(){const api=(0,useApi.h)();const qc=(0,index_js_.useQueryClient)();return(0,index_js_.useMutation)({mutationFn:async changes=>{for(const change of changes){if(null!=change.managed)await api.etatSaisie.setManagedV1({id:change.id},{managed:change.managed});if(void 0!==change.notionUserId)await api.etatSaisie.setResponsableV1({id:change.id},{notion_user_id:change.notionUserId})}return changes.length},onSuccess:()=>{qc.invalidateQueries({queryKey:["tech","etat-saisie","dossiers"]});qc.invalidateQueries({queryKey:["tech","etat-saisie","latest"]})}})}var logoDev=__webpack_require__(243);var QuickBooksIcon=__webpack_require__(9781);const PROVIDER_DOMAIN={cegid_xrp_flex:"cegid.com",pennylane:"pennylane.com",zohobooks:"zoho.com",xero:"xero.com",odoo:"odoo.com"};function ProviderIcon(props){const{provider}=props;if(!provider)return null;if("quickbooks"===provider)return/*#__PURE__*/(0,jsx_runtime.jsx)(QuickBooksIcon.h,{size:20});const domain=PROVIDER_DOMAIN[provider];if(!domain)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Badge,{size:"sm",variant:"light",color:"gray",title:provider,children:provider.slice(0,2).toUpperCase()});return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Image,{src:(0,logoDev.j)(domain),alt:provider,title:provider,w:20,h:20,fit:"contain",radius:"sm",style:{aspectRatio:1}})}function DossiersTab(){const isMobile=(0,esm_index_mjs_.useMediaQuery)("(max-width: 48em)",false);const dossiers=useDossiers();const save=useSaveDossierAssignments();const[filter,setFilter]=(0,consume_shared_module_default_react_strict_.useState)("");const[draft,setDraft]=(0,consume_shared_module_default_react_strict_.useState)({});(0,consume_shared_module_default_react_strict_.useEffect)(()=>{if(dossiers.data)setDraft({})},[dossiers.data]);const managedOf=dossier=>draft[dossier.airporting_id]?.managed??dossier.managed;const responsableIdOf=dossier=>{const pending=draft[dossier.airporting_id];if(pending&&"responsableId"in pending)return pending.responsableId??null;return dossier.responsable?dossier.responsable.id:null};const setManagedDraft=(dossier,managed)=>setDraft(current=>({...current,[dossier.airporting_id]:{...current[dossier.airporting_id],managed}}));const setResponsableDraft=(dossier,responsableId)=>setDraft(current=>({...current,[dossier.airporting_id]:{...current[dossier.airporting_id],responsableId}}));const options=dossiers.data?.responsable_options??[];const optionData=options.map(u=>({value:String(u.id),label:u.name}));const avatarOf=responsableId=>null==responsableId?void 0:options.find(u=>u.id===responsableId)?.avatar_url;const all=dossiers.data?.dossiers??[];const rows=(0,consume_shared_module_default_react_strict_.useMemo)(()=>{const needle=filter.trim().toLowerCase();const filtered=needle?all.filter(dossier=>dossier.display_name.toLowerCase().includes(needle)||dossier.slug.toLowerCase().includes(needle)):all;return[...filtered].sort((a,b)=>a.display_name.localeCompare(b.display_name))},[all,filter]);const changes=all.flatMap(dossier=>{const change={id:dossier.airporting_id};const managed=managedOf(dossier);if(managed!==dossier.managed)change.managed=managed;const responsableId=responsableIdOf(dossier);const current=dossier.responsable?dossier.responsable.id:null;if(responsableId!==current)change.notionUserId=responsableId;return null!=change.managed||void 0!==change.notionUserId?[change]:[]});if(dossiers.isError)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{c:"red",mt:"md",children:"Erreur de chargement des dossiers."});const saveButton=/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Button,{size:"xs",loading:save.isPending,disabled:0===changes.length,onClick:()=>save.mutate(changes),children:changes.length>0?`Enregistrer (${changes.length})`:"Enregistrer"});return/*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{mb:"md",justify:"space-between",wrap:"wrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.TextInput,{placeholder:"Filtrer par nom ou slug",value:filter,onChange:event=>setFilter(event.currentTarget.value),w:isMobile?"100%":320}),saveButton]}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Stack,{gap:"sm",children:0===rows.length?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{c:"dimmed",ta:"center",py:"xl",children:"Aucun dossier"}):rows.map(dossier=>/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Card,{withBorder:true,p:"sm",radius:"md",children:/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Stack,{gap:"sm",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"flex-start",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",miw:0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:dossier.provider}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{minWidth:0},children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{fw:700,size:"sm",lineClamp:1,children:dossier.display_name}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",lineClamp:1,children:dossier.slug})]})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Switch,{checked:managedOf(dossier),onChange:event=>setManagedDraft(dossier,event.currentTarget.checked)})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Select,{placeholder:"Responsable",data:optionData,value:null==responsableIdOf(dossier)?null:String(responsableIdOf(dossier)),onChange:v=>setResponsableDraft(dossier,v?Number(v):null),searchable:true,clearable:true,leftSection:avatarOf(responsableIdOf(dossier))?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Avatar,{src:avatarOf(responsableIdOf(dossier)),size:20,radius:"xl"}):void 0})]})},`${dossier.airporting_id}:${dossier.provider}`))}):/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Table,{striped:true,highlightOnHover:true,withTableBorder:true,stickyHeader:true,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Thead,{children:/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Table.Tr,{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Th,{children:"Source"}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Th,{children:"Dossier"}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Th,{children:"G\xe9r\xe9"}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Th,{children:"Responsable"})]})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Tbody,{children:0===rows.length?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Tr,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Td,{colSpan:4,children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{c:"dimmed",ta:"center",children:"Aucun dossier"})})}):rows.map(dossier=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Table.Tr,{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Td,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:dossier.provider})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Td,{children:dossier.display_name}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Td,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Switch,{checked:managedOf(dossier),onChange:event=>setManagedDraft(dossier,event.currentTarget.checked)})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Td,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Select,{placeholder:"—",data:optionData,value:null==responsableIdOf(dossier)?null:String(responsableIdOf(dossier)),onChange:v=>setResponsableDraft(dossier,v?Number(v):null),searchable:true,clearable:true,w:220,leftSection:avatarOf(responsableIdOf(dossier))?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Avatar,{src:avatarOf(responsableIdOf(dossier)),size:20,radius:"xl"}):void 0})})]},`${dossier.airporting_id}:${dossier.provider}`))})]})]})}const MAX_STARS=5;const REASON_BADGES={vide:{label:"Vide",color:"gray"},erreur_scan:{label:"Erreur de scan",color:"red"},couverture_connecteur:{label:"Non not\xe9",color:"gray"}};const VERDICT_STYLE={parfait:{color:"green",symbol:"✓"},vert:{color:"green",symbol:"✓"},orange:{color:"orange",symbol:"!"},rouge:{color:"red",symbol:"✕"},non_mesurable:{color:"gray",symbol:"\xb7"}};function starColor(score){if(score>=4)return"var(--mantine-color-green-6)";if(score>=3)return"var(--mantine-color-yellow-6)";if(score>=2)return"var(--mantine-color-orange-6)";return"var(--mantine-color-red-6)"}function Stars(props){const color=starColor(props.score);const items=[];for(let i=1;i<=MAX_STARS;i+=1)if(props.score>=i)items.push(/*#__PURE__*/(0,jsx_runtime.jsx)(tabler_icons_react_mjs_.IconStarFilled,{size:13,color:color},i));else if(props.score>=i-.5)items.push(/*#__PURE__*/(0,jsx_runtime.jsx)(tabler_icons_react_mjs_.IconStarHalfFilled,{size:13,color:color},i));else items.push(/*#__PURE__*/(0,jsx_runtime.jsx)(tabler_icons_react_mjs_.IconStar,{size:13,color:"var(--mantine-color-dark-2)"},i));return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Group,{gap:1,wrap:"nowrap",children:items})}function ControlList(props){const controls=props.row.score_controls??[];if(0===controls.length)return null;return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Stack,{gap:4,children:controls.map(c=>{const style=VERDICT_STYLE[c.verdict]??VERDICT_STYLE.non_mesurable;return/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",align:"flex-start",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:style.color,fw:700,w:12,children:style.symbol}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",children:c.label}),c.detail?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",children:c.detail}):null]})]},c.key)})})}function ScoreStars(props){const{row}=props;if(null==row.score){const badge=row.score_reason?REASON_BADGES[row.score_reason]:void 0;const fallback=badge??{label:"Non not\xe9",color:"gray"};const controls=row.score_controls??[];const content=/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Badge,{size:"xs",color:fallback.color,variant:"light",children:fallback.label});if("couverture_connecteur"!==row.score_reason)return content;return/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.HoverCard,{width:300,shadow:"md",openDelay:150,withinPortal:true,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.HoverCard.Target,{children:/*#__PURE__*/(0,jsx_runtime.jsx)("span",{style:{cursor:"help"},children:content})}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.HoverCard.Dropdown,{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",fw:600,mb:6,children:"Pas assez de contr\xf4les mesurables"}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{size:"xs",c:"dimmed",mb:6,children:["Ce connecteur n’expose pas les comptes n\xe9cessaires. Une note fond\xe9e sur ",controls.filter(c=>"non_mesurable"!==c.verdict).length," ","contr\xf4le(s) sur ",MAX_STARS," ne voudrait rien dire."]}),/*#__PURE__*/(0,jsx_runtime.jsx)(ControlList,{row:row})]})]})}const stale=null!=row.refreshed_at&&null!=row.reconciliation_refresh_date&&row.refreshed_at<row.reconciliation_refresh_date;return/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.HoverCard,{width:320,shadow:"md",openDelay:150,withinPortal:true,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.HoverCard.Target,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Group,{gap:6,wrap:"nowrap",style:{cursor:"help"},children:/*#__PURE__*/(0,jsx_runtime.jsx)(Stars,{score:row.score})})}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.HoverCard.Dropdown,{children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",mb:6,wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(Stars,{score:row.score}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{size:"xs",fw:600,children:[row.score.toLocaleString("fr-FR")," / ",MAX_STARS,row.score_label?` \xb7 ${row.score_label}`:""]})]}),row.score_capped_reason?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"orange",mb:6,children:row.score_capped_reason}):null,stale?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"yellow",mb:6,children:"Chiffres repris d’un calcul ant\xe9rieur."}):null,/*#__PURE__*/(0,jsx_runtime.jsx)(ControlList,{row:row})]})]})}function scoreBucket(row){if(null==row.score)return"non_note";if(row.score>=4)return"bon";if(row.score>=3)return"moyen";return"faible"}function ManagedBadge(props){const{managed}=props;if(!managed)return null;return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Image,{src:(0,logoDev.j)("airporting.com"),alt:"G\xe9r\xe9 par Airporting",title:"G\xe9r\xe9 par Airporting",w:18,h:18,fit:"contain",radius:"sm",style:{aspectRatio:1}})}const BANK_DOMAINS=[["bnp paribas","bnpparibas.com"],["societe generale","societegenerale.com"],["qonto","qonto.com"],["revolut","revolut.com"],["stripe","stripe.com"],["wise","wise.com"],["transferwise","wise.com"],["rbc","rbcroyalbank.com"],["ibanfirst","ibanfirst.com"],["credit agricole","credit-agricole.fr"],["credit mutuel","creditmutuel.fr"],["banque populaire","banquepopulaire.fr"],["caisse d","caisse-epargne.fr"],["american express","americanexpress.com"],["amex","americanexpress.com"],["paypal","paypal.com"],["hsbc","hsbc.com"],["pennylane","pennylane.com"],["mercury","mercury.com"],["lcl","lcl.fr"],["boursorama","boursorama.com"],["bpce","bpce.fr"],["memo bank","memo.bank"],["cic","cic.fr",true],["alma","getalma.eu",true],["payplug","payplug.com"],["stancer","stancer.com"],["gocardless","gocardless.com"],["mangopay","mangopay.com"],["banque postale","labanquepostale.com"]];function matches(normalized,[needle,,wholeWord]){if(!wholeWord)return normalized.includes(needle);return` ${normalized.replace(/[^a-z0-9]+/g," ")} `.includes(` ${needle} `)}function normalize(value){return value.toLowerCase().normalize("NFD").replace(/\p{Diacritic}/gu,"")}function BankLogo(props){const{label,size=20}=props;const normalized=label?normalize(label):"";const match=BANK_DOMAINS.find(entry=>matches(normalized,entry));if(!match)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,children:"\uD83C\uDFE6"});return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Image,{src:(0,logoDev.j)(match[1]),alt:label??"",title:label??"",w:size,h:size,fit:"contain",radius:"sm",style:{aspectRatio:1}})}const reconciliationScopeKey=row=>`${row.source}:${row.dossier}`;function reconciliationDatesByScope(rows){const dates=new Map;for(const row of rows){if(row.muted)continue;const key=reconciliationScopeKey(row);const date=row.last_reconciled_period_end;if(!dates.has(key)){dates.set(key,date);continue}const previous=dates.get(key);dates.set(key,null==previous||null==date?null:previous<date?previous:date)}return dates}function reconciliationDateForLine(row,dates){const key=reconciliationScopeKey(row);return dates.has(key)?dates.get(key)??null:row.last_reconciliation_date}function balanceGap(reading){if(reading?.accounting_balance==null||null==reading.bank_balance||!Number.isFinite(reading.accounting_balance)||!Number.isFinite(reading.bank_balance))return null;const cents=Math.round((reading.accounting_balance-reading.bank_balance)*100);if(!Number.isSafeInteger(cents))return null;return 0===cents?0:cents/100}function reconciliationGapAlert(row){const reading=row.reconciled_balance_reading;if("pennylane"!==row.source||row.muted||!row.last_reconciled_period_end||!reading||reading.period_end!==row.last_reconciled_period_end||!/^\d{4}-\d{2}-\d{2}$/.test(reading.period_start)||reading.period_start>reading.period_end)return false;const gap=balanceGap(reading);return null!==gap&&0!==gap}function reconciliationGapCounts(rows){const counts=new Map;for(const row of rows){if(!reconciliationGapAlert(row))continue;const key=reconciliationScopeKey(row);counts.set(key,(counts.get(key)??0)+1)}return counts}const CURRENCY_SYMBOLS={EUR:"€",USD:"$",GBP:"\xa3"};function formatBankAmount(amount,currency){if(null===amount||!Number.isFinite(amount))return"Indisponible";const unit=currency?CURRENCY_SYMBOLS[currency]??` ${currency}`:" (devise inconnue)";const abs=Math.abs(amount);if(abs>=1e3){const value=(amount/1e3).toLocaleString("fr-FR",{maximumFractionDigits:0});return`${value} k${unit}`}const value=amount.toLocaleString("fr-FR",{maximumFractionDigits:abs>0&&abs<1?2:0});return`${value} ${unit.trim()}`}const BankBalanceDetails_date=iso=>iso.split("-").reverse().join("/");function ReconciliationGapBadge({count}){return count>0?/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Badge,{color:"red",size:"sm",ml:6,children:[count," \xe9cart",count>1?"s":""]}):null}function ReconciliationBalanceCell({row}){if("pennylane"!==row.source)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,size:"sm",c:"dimmed",children:"Non disponible pour ce connecteur"});const reading=row.reconciled_balance_reading;if(!reading)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,size:"sm",c:"dimmed",children:row.last_reconciled_period_end?"Soldes indisponibles":"Aucun rapprochement termin\xe9"});const gap=balanceGap(reading);return/*#__PURE__*/(0,jsx_runtime.jsxs)("span",{style:{display:"block",minWidth:160},children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{span:true,display:"block",size:"xs",c:"dimmed",children:[BankBalanceDetails_date(reading.period_start)," au ",BankBalanceDetails_date(reading.period_end)]}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{span:true,display:"block",size:"sm",children:["Compta :"," ",formatBankAmount(reading.accounting_balance,reading.currency)]}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{span:true,display:"block",size:"sm",children:["Banque : ",formatBankAmount(reading.bank_balance,reading.currency)]}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{span:true,display:"block",size:"sm",fw:700,c:null===gap?"dimmed":0!==gap?"red":"teal",children:["\xc9cart : ",formatBankAmount(gap,reading.currency),reconciliationGapAlert(row)&&/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Badge,{color:"red",size:"xs",ml:6,children:"\xc0 v\xe9rifier"})]})]})}var CompanyLogo=__webpack_require__(3437);var LoadingProgress=__webpack_require__(9488);var useAppConfig=__webpack_require__(7936);var PageHeader=__webpack_require__(1354);const categories=new Set(["471","58","supplier","customer","factor","provision_cp","reconciliation","supplier_invoices_accounting","supplier_invoices_management"]);function readDrillFromUrl(url){const dossier=url.searchParams.get("dossier")?.trim();const source=url.searchParams.get("source")?.trim();const drill=url.searchParams.get("drill");if(!dossier||!source||!drill)return null;if("all"!==drill&&!categories.has(drill))return null;return{dossier,source,category:"all"===drill?null:drill}}function urlWithDrill(url,selection){const next=new URL(url);if(selection){next.searchParams.set("dossier",selection.dossier);next.searchParams.set("source",selection.source);next.searchParams.set("drill",selection.category??"all")}else{next.searchParams.delete("dossier");next.searchParams.delete("source");next.searchParams.delete("drill")}return next}const HEADER_HIDDEN_KEY="accounting:header-hidden";function readHeaderHidden(){try{return"1"===window.localStorage.getItem(HEADER_HIDDEN_KEY)}catch{return false}}function writeHeaderHidden(hidden){try{window.localStorage.setItem(HEADER_HIDDEN_KEY,hidden?"1":"0")}catch{}}const recoAccountLabel=row=>{const account=(row.account_name??"").trim();const bank=(row.bank_label??"").trim();if(""!==account&&""!==bank&&account!==bank)return`${bank} : ${account}`;return""!==account?account:""!==bank?bank:"Banque"};const muteKey=(companyId,accountId)=>`${companyId}:${accountId}`;function drillCategoryLabel(category){if("471"===category)return"D\xe9tail 471";if("58"===category)return"D\xe9tail 58";if("supplier"===category)return"Fournisseurs d\xe9biteurs 401";if("customer"===category)return"Clients cr\xe9diteurs 411";if("factor"===category)return"Cr\xe9ances c\xe9d\xe9es au factor 4116";if("provision_cp"===category)return"Provision CP 4282 + 4382";if("reconciliation"===category)return"Rappros bancaires";if("supplier_invoices_accounting"===category)return"Factures fournisseurs \xe0 traiter (compta)";if("supplier_invoices_management"===category)return"Factures fournisseurs \xe0 traiter (gestion)";return null}function provisionCpMobileText(row){const p=row.provision_cp;if(null==p||"non_mesurable"===p.status)return"—";if("en_retard"===p.status)return"non saisie";if("saisie"===p.status)return`saisie le ${formatDate(p.window_entry_date)}`;return`\xe9ch\xe9ance le ${formatDate(p.deadline)}`}function provisionCpHint(p){if("en_retard"===p.status)return`Aucune \xe9criture significative depuis la cl\xf4ture du ${formatDate(p.closing_date)}. La provision doit \xeatre repass\xe9e.`;if("saisie"===p.status)return`Provision repass\xe9e le ${formatDate(p.window_entry_date)} (cl\xf4ture du ${formatDate(p.closing_date)}).`;if("a_saisir"===p.status)return`Cl\xf4ture du ${formatDate(p.closing_date)} : provision \xe0 saisir avant le ${formatDate(p.deadline)}.`;return"\xc9critures significatives (hors \xe0-nouveau) sur les comptes d\xe9di\xe9s."}function pennylaneSupplierInvoicesUrl(row,space){if("pennylane"!==row.source||null==row.pennylane_company_id)return null;const base=`https://app.pennylane.com/companies/${row.pennylane_company_id}`;if("compta"===space){const filter=encodeURIComponent(JSON.stringify([{field:"status",operator:"in_scopes",value:["entry","validation_needed"]}]));return`${base}/accountants/supplier_invoices?filter=${filter}`}const filter=encodeURIComponent(JSON.stringify([{field:"status",operator:"in_scopes",value:"inbox_tab"}]));return`${base}/supplier_invoices?filter=${filter}`}function syncBadge(isoDate){if(!isoDate)return null;const days=Math.floor((Date.now()-new Date(isoDate).getTime())/864e5);let color="green";if(days>10)color="red";else if(days>4)color="orange";return/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Badge,{ml:6,size:"xs",color:color,variant:"light",children:[days,"j"]})}function isStaleRefresh(refreshedAt,computedAt){if(!refreshedAt)return false;const refreshedDay=refreshedAt.slice(0,10);const referenceDay=(computedAt??new Date().toISOString()).slice(0,10);return refreshedDay<referenceDay}function refreshKoBadge(refreshedAt,computedAt){if(!isStaleRefresh(refreshedAt,computedAt))return null;return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tooltip,{label:`Chiffres du ${formatDate(refreshedAt?.slice(0,10))} \u{2014} refresh KO ce run`,children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Badge,{ml:6,size:"xs",color:"yellow",variant:"light",children:"refresh KO"})})}function factorKeur(row){const v=row.total_factor_eur??0;return 0===v?"—":formatKeur(v,row.currency)}function withDossierFilter(rows,dossier){if(!dossier)return rows;return rows.filter(r=>r.dossier===dossier)}function withManagedFilter(rows,managedOnly){if(!managedOnly)return rows;return rows.filter(r=>true===r.managed)}const NO_RESPONSABLE="__none__";function withResponsableFilter(rows,responsable){if(!responsable)return rows;if(responsable===NO_RESPONSABLE)return rows.filter(r=>null==r.responsable);return rows.filter(r=>String(r.responsable?.id)===responsable)}function withScoreFilter(rows,bucket){if("all"===bucket)return rows;return rows.filter(r=>scoreBucket(r)===bucket)}function formatCurrency(value,currency){if(null==value)return"—";try{return value.toLocaleString("fr-FR",{style:"currency",currency:currency||"EUR",minimumFractionDigits:0,maximumFractionDigits:0})}catch{return`${Math.round(value).toLocaleString("fr-FR")} ${currency}`}}function formatNumber(value){if(null==value)return"—";return value.toLocaleString("fr-FR")}function formatDate(value){if(!value)return"—";return value.split("-").reverse().join("/")}function currencySymbol(code){const currency=code||"EUR";try{const parts=new Intl.NumberFormat("fr-FR",{style:"currency",currency}).formatToParts(0);return parts.find(part=>"currency"===part.type)?.value??currency}catch{return currency}}function formatKeur(value,currency){if(null==value)return"—";const keur=Math.round(value/1e3)||0;if(0===keur&&0!==value)return`${Math.round(value).toLocaleString("fr-FR")} ${currencySymbol(currency)}`;return`${keur.toLocaleString("fr-FR")} k${currencySymbol(currency)}`}function sumBy(rows,pick){return rows.reduce((acc,row)=>acc+(pick(row)??0),0)}function DrillSectionTitle(props){const isSample=null!=props.total&&props.count>0&&Math.abs(props.visibleSum-props.total)>.5;return/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Title,{order:5,mb:6,children:[props.label," (",props.count,isSample?" affich\xe9s":"",")",null!=props.total?` \xb7 total ${formatCurrency(props.total,props.currency)}`:""]})}function ClickableMetricValue(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,inherit:true,style:{cursor:"pointer",display:"block",width:"100%"},onClick:e=>{e.stopPropagation();props.onClick()},children:props.value})}function updateDateParts(row){return[{label:"Derni\xe8re \xe9criture",iso:row.last_entry_date},{label:"Dernier import GLA",iso:row.gla_last_sync_date?.slice(0,10)??null},{label:"Rappros / factures",iso:row.reconciliation_refresh_date?.slice(0,10)??null}]}function oldestUpdateDate(parts){const present=parts.map(p=>p.iso).filter(v=>null!=v);if(0===present.length)return null;return present.reduce((a,b)=>a<b?a:b)}function UpdateDateCell(props){const parts=updateDateParts(props.row);const oldest=oldestUpdateDate(parts);if(null==oldest)return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:"—"});return/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.HoverCard,{withArrow:true,shadow:"md",openDelay:120,position:"bottom-start",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.HoverCard.Target,{children:/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{span:true,inherit:true,style:{cursor:"default"},children:[formatDate(oldest),syncBadge(oldest),refreshKoBadge(props.row.refreshed_at,props.computedAt),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,c:"dimmed",children:" ▾"})]})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.HoverCard.Dropdown,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Stack,{gap:4,children:parts.map(p=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",gap:"lg",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",children:p.label}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",children:p.iso?formatDate(p.iso):"—"})]},p.label))})})]})}function clickableCardStyle(clickable){return clickable?{cursor:"pointer"}:void 0}function MobileMetricGrid({metrics}){return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.SimpleGrid,{cols:2,spacing:"xs",children:metrics.map(metric=>/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{cursor:metric.onClick?"pointer":void 0,gridColumn:metric.wide?"1 / -1":void 0},onClick:metric.onClick?event=>{event.stopPropagation();metric.onClick?.()}:void 0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",children:metric.label}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"sm",fw:700,c:metric.color,lineClamp:metric.wide?void 0:2,children:metric.value})]},metric.label))})}function MobileAccountingList(props){const{rows,emptyLabel="Aucune ligne",getKey,renderHeader,getMetrics,onRowClick}=props;if(0===rows.length)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{c:"dimmed",ta:"center",py:"xl",children:emptyLabel});return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Stack,{gap:"sm",children:rows.map((row,index)=>/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Card,{withBorder:true,p:"sm",radius:"md",onClick:onRowClick?()=>onRowClick(row):void 0,style:clickableCardStyle(!!onRowClick),children:/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Stack,{gap:"sm",children:[renderHeader(row),/*#__PURE__*/(0,jsx_runtime.jsx)(MobileMetricGrid,{metrics:getMetrics(row)})]})},getKey(row,index)))})}function MobileDossierLineList(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(MobileAccountingList,{rows:props.rows,getKey:row=>`${row.source}:${row.dossier}`,renderHeader:row=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"flex-start",gap:"sm",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",align:"center",wrap:"nowrap",miw:0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:row.source}),/*#__PURE__*/(0,jsx_runtime.jsx)(CompanyLogo.D,{slug:row.slug,updatedAt:row.logo_updated_at,size:24}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{minWidth:0},children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{fw:700,size:"sm",lineClamp:1,children:row.dossier}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:6,wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:row.managed}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",lineClamp:1,children:row.responsable?.name??"Sans responsable"})]})]})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(ScoreStars,{row:row})]}),getMetrics:row=>[{label:"471",value:/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:formatKeur(row.solde_attente_eur,row.currency),onClick:()=>props.onDrill(row,"471")})},{label:"58",value:/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:formatKeur(row.solde_virements_eur,row.currency),onClick:()=>props.onDrill(row,"58")})},{label:"401",value:/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:formatKeur(row.total_fournisseurs_eur,row.currency),onClick:()=>props.onDrill(row,"supplier")})},{label:"411",value:/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:formatKeur(row.total_clients_eur,row.currency),onClick:()=>props.onDrill(row,"customer")})},{label:"Cr\xe9ances c\xe9d\xe9es",value:/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:factorKeur(row),onClick:()=>props.onDrill(row,"factor")})},{label:"Date mise \xe0 jour",value:(()=>{const oldest=oldestUpdateDate(updateDateParts(row));if(null==oldest)return"—";return/*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[formatDate(oldest),syncBadge(oldest),refreshKoBadge(row.refreshed_at,props.computedAt)]})})()},{label:"Rappro",...(()=>{const hasActiveReco=props.activeRecoScopes.has(reconciliationScopeKey(row));const lastReconciliationDate=reconciliationDateForLine(row,props.reconciliationDates);const text=null!=lastReconciliationDate?formatDate(lastReconciliationDate):hasActiveReco?"jamais":"—";return{value:/*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[text,/*#__PURE__*/(0,jsx_runtime.jsx)(ReconciliationGapBadge,{count:props.reconciliationGaps.get(reconciliationScopeKey(row))??0})]}),onClick:"—"===text?void 0:()=>props.onDrill(row,"reconciliation")}})(),color:null==reconciliationDateForLine(row,props.reconciliationDates)&&props.activeRecoScopes.has(reconciliationScopeKey(row))?"red":void 0},{label:"Factures fournisseurs \xe0 traiter (compta)",value:null!=row.pending_supplier_invoices?formatNumber(row.pending_supplier_invoices):"—",onClick:"pennylane"===row.source&&null!=row.pending_supplier_invoices?()=>props.onDrill(row,"supplier_invoices_accounting"):void 0},{label:"Factures fournisseurs \xe0 traiter (gestion)",value:"pennylane"===row.source?formatNumber(row.management_supplier_invoices_inbox):"—",onClick:"pennylane"===row.source&&null!=row.management_supplier_invoices_inbox?()=>props.onDrill(row,"supplier_invoices_management"):void 0},{label:"Provision CP",value:provisionCpMobileText(row),color:row.provision_cp?.status==="en_retard"?"red":void 0,onClick:null!=row.provision_cp&&"non_mesurable"!==row.provision_cp.status?()=>props.onDrill(row,"provision_cp"):void 0}]})}function MobileSuspenseList(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(MobileAccountingList,{rows:props.rows,onRowClick:props.onRowClick,getKey:(row,index)=>`${row.dossier}:${row.date}:${row.numero_piece??index}`,renderHeader:row=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"flex-start",gap:"sm",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",miw:0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:row.source}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{minWidth:0},children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{fw:700,size:"sm",lineClamp:1,children:row.dossier}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",lineClamp:2,children:row.libelle_ecriture??row.libelle_compte??"Sans libell\xe9"})]})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:row.managed})]}),getMetrics:row=>[{label:"Solde net",value:formatCurrency(row.solde_net)},{label:"Date",value:formatDate(row.date)},{label:"Compte",value:row.numero_compte??"—"},{label:"Pi\xe8ce",value:row.numero_piece??"—"}]})}function MobileSupplierList(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(MobileAccountingList,{rows:props.rows,onRowClick:props.onRowClick,getKey:(row,index)=>`${row.dossier}:${row.fournisseur}:${index}`,renderHeader:row=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"flex-start",gap:"sm",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",miw:0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:row.source}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{minWidth:0},children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{fw:700,size:"sm",lineClamp:1,children:row.fournisseur}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",lineClamp:1,children:row.dossier})]})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:row.managed})]}),getMetrics:row=>[{label:"Solde d\xe9biteur",value:formatCurrency(row.solde_debiteur_eur)},{label:"\xc9critures",value:formatNumber(row.nb_ecritures)},{label:"Devise",value:row.devise||"—"}]})}function MobileCustomerList(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(MobileAccountingList,{rows:props.rows,onRowClick:props.onRowClick,getKey:(row,index)=>`${row.dossier}:${row.client}:${index}`,renderHeader:row=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"flex-start",gap:"sm",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",miw:0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:row.source}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{minWidth:0},children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{fw:700,size:"sm",lineClamp:1,children:row.client}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",lineClamp:1,children:row.dossier})]})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:row.managed})]}),getMetrics:row=>[{label:"Solde cr\xe9diteur",value:formatCurrency(row.solde_crediteur_eur)},{label:"\xc9critures",value:formatNumber(row.nb_ecritures)},{label:"Devise",value:row.devise||"—"}]})}function MobileProvisionList(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(MobileAccountingList,{rows:props.rows,getKey:(row,index)=>`${row.date}:${row.account}:${index}`,renderHeader:row=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"flex-start",gap:"sm",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{minWidth:0},children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{fw:700,size:"sm",lineClamp:1,children:formatDate(row.date)}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",lineClamp:2,children:row.label||row.account_label||row.account})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"sm",fw:700,lineClamp:1,children:formatCurrency(Math.max(row.debit,row.credit))})]}),getMetrics:row=>[{label:"Compte",value:row.account},{label:"Journal",value:row.journal_label??row.journal_code??"—"},{label:"D\xe9bit",value:formatCurrency(row.debit)},{label:"Cr\xe9dit",value:formatCurrency(row.credit)}]})}function MobilePendingInvoiceList(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(MobileAccountingList,{rows:props.rows,getKey:row=>String(row.id),renderHeader:row=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",gap:"sm",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"sm",fw:700,lineClamp:2,children:row.label}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"sm",fw:700,children:formatCurrency(row.amount,row.currency)})]}),getMetrics:row=>[{label:"Date",value:formatDate(row.date)},{label:"N\xb0",value:row.invoice_number??"-"},{label:"Statut",value:row.status??"-"}]})}function PendingInvoiceDrill(props){const url=props.line?pennylaneSupplierInvoicesUrl(props.line,props.space):null;return/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"center",mb:6,children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Title,{order:5,children:[props.title," (",props.count??"-",")"]}),url&&/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Button,{component:"a",href:url,target:"_blank",rel:"noopener noreferrer",size:"xs",variant:"subtle",children:"Ouvrir dans Pennylane"})]}),null===props.rows?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"sm",c:"dimmed",children:"D\xe9tail disponible apr\xe8s la prochaine synchronisation."}):/*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",mb:6,children:"Jusqu'\xe0 10 factures, les plus anciennes d'abord."}),props.isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobilePendingInvoiceList,{rows:props.rows}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:DRILL_PENDING_INVOICE_COLS,rows:props.rows})]})]})}function MobileReconciliationList({rows,onToggleMute}){return/*#__PURE__*/(0,jsx_runtime.jsx)(MobileAccountingList,{rows:rows,getKey:row=>`${row.airporting_company_id}:${row.account_id}`,renderHeader:row=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"center",gap:"sm",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",miw:0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(BankLogo,{label:row.bank_label||row.account_name,size:24}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{fw:700,size:"sm",lineClamp:1,c:row.muted?"dimmed":void 0,children:recoAccountLabel(row)})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Switch,{size:"sm",checked:!row.muted,label:row.muted?"non suivi":"suivi",onLabel:"suivi",onChange:e=>onToggleMute({company_id:row.airporting_company_id,account_id:row.account_id,muted:!e.currentTarget.checked})})]}),getMetrics:row=>[{label:"Soldes du dernier rapprochement termin\xe9",value:/*#__PURE__*/(0,jsx_runtime.jsx)(ReconciliationBalanceCell,{row:row}),wide:true},{label:"Dernier rappro",value:row.muted?"non suivi":row.last_reconciled_period_end?formatDate(row.last_reconciled_period_end):"jamais",color:row.muted?"dimmed":row.last_reconciled_period_end?void 0:"red"},{label:"Derni\xe8re op\xe9ration",value:row.last_movement_date?formatDate(row.last_movement_date):"—"},{label:"\xc0 rapprocher depuis",value:row.muted?"non suivi":row.unreconciled_since?formatDate(row.unreconciled_since):row.last_movement_date?"rien \xe0 rapprocher":"—",color:!row.muted&&null==row.unreconciled_since&&row.last_movement_date?"teal":void 0}]})}function MobileTopSuspenseList(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(MobileAccountingList,{rows:props.rows,onRowClick:props.onRowClick,getKey:row=>`471:${row.rank}:${row.dossier}`,renderHeader:row=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"flex-start",gap:"sm",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",miw:0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:row.source}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{minWidth:0},children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{fw:700,size:"sm",lineClamp:1,children:["#",row.rank," ",row.dossier]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",lineClamp:1,children:row.top_libelle??"Sans libell\xe9"})]})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:row.managed})]}),getMetrics:row=>[{label:"Solde 471",value:formatCurrency(row.solde_eur)},{label:"\xc9critures",value:formatNumber(row.nb_ecritures)},{label:"Top montant",value:formatCurrency(row.top_montant)}]})}function MobileTopSupplierList(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(MobileAccountingList,{rows:props.rows,onRowClick:props.onRowClick,getKey:row=>`401:${row.rank}:${row.dossier}`,renderHeader:row=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"flex-start",gap:"sm",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",miw:0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:row.source}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{minWidth:0},children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{fw:700,size:"sm",lineClamp:1,children:["#",row.rank," ",row.dossier]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",lineClamp:1,children:row.top_nom??"Sans fournisseur"})]})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:row.managed})]}),getMetrics:row=>[{label:"Total d\xe9biteur",value:formatCurrency(row.total_eur)},{label:"Fournisseurs",value:formatNumber(row.nb_fournisseurs)},{label:"Top montant",value:formatCurrency(row.top_montant)}]})}function MobileTopCustomerList(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(MobileAccountingList,{rows:props.rows,onRowClick:props.onRowClick,getKey:row=>`411:${row.rank}:${row.dossier}`,renderHeader:row=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"flex-start",gap:"sm",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",miw:0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:row.source}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{minWidth:0},children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{fw:700,size:"sm",lineClamp:1,children:["#",row.rank," ",row.dossier]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",lineClamp:1,children:row.top_nom??"Sans client"})]})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:row.managed})]}),getMetrics:row=>[{label:"Total cr\xe9diteur",value:formatCurrency(row.total_eur)},{label:"Clients",value:formatNumber(row.nb_clients)},{label:"Top montant",value:formatCurrency(row.top_montant)}]})}function EtatSaisieApp(){const{consoleLoading}=(0,useAppConfig.M)();const isMobile=(0,esm_index_mjs_.useMediaQuery)("(max-width: 48em)",false);const latest=useEtatSaisieLatest();const recompute=useEtatSaisieRecompute();const saveReconciliationMutes=useSaveReconciliationMutes();const[muteDraft,setMuteDraft]=(0,consume_shared_module_default_react_strict_.useState)(new Map);const[tab,setTab]=(0,consume_shared_module_default_react_strict_.useState)("resume");const[selectedDossier,setSelectedDossier]=(0,consume_shared_module_default_react_strict_.useState)(null);const[managedOnly,setManagedOnly]=(0,consume_shared_module_default_react_strict_.useState)(true);const[statusFilter,setStatusFilter]=(0,consume_shared_module_default_react_strict_.useState)("all");const[selectedResponsable,setSelectedResponsable]=(0,consume_shared_module_default_react_strict_.useState)(null);const[headerHidden,setHeaderHidden]=(0,consume_shared_module_default_react_strict_.useState)(readHeaderHidden);(0,consume_shared_module_default_react_strict_.useEffect)(()=>writeHeaderHidden(headerHidden),[headerHidden]);const activeFilterCount=(selectedDossier?1:0)+(selectedResponsable?1:0)+("all"!==statusFilter?1:0)+(managedOnly?0:1);const[drill,setDrill]=(0,consume_shared_module_default_react_strict_.useState)(()=>"undefined"==typeof window?null:readDrillFromUrl(new URL(window.location.href)));const drillDossier=drill?.dossier??null;const drillProvider=drill?.source??null;const drillCategory=drill?.category??null;const d=latest.data;(0,consume_shared_module_default_react_strict_.useEffect)(()=>{const syncDrillFromUrl=()=>{setDrill(readDrillFromUrl(new URL(window.location.href)));setMuteDraft(new Map)};window.addEventListener("popstate",syncDrillFromUrl);return()=>window.removeEventListener("popstate",syncDrillFromUrl)},[]);const allDossiers=(0,consume_shared_module_default_react_strict_.useMemo)(()=>{if(!d?.available)return[];const set=new Set;for(const r of d.suspense_rows??[])set.add(r.dossier);for(const r of d.supplier_rows??[])set.add(r.dossier);for(const r of d.customer_rows??[])set.add(r.dossier);for(const r of d.dossier_lines??[])set.add(r.dossier);for(const r of d.reconciliation_rows??[])set.add(r.dossier);for(const r of d.summary?.top_5_suspense??[])set.add(r.dossier);for(const r of d.summary?.top_5_supplier_debtors??[])set.add(r.dossier);for(const r of d.summary?.top_5_customer_creditors??[])set.add(r.dossier);return[...set].sort()},[d]);const responsableOptions=(0,consume_shared_module_default_react_strict_.useMemo)(()=>{const byId=new Map;let hasNone=false;for(const line of d?.dossier_lines??[])if(line.responsable)byId.set(line.responsable.id,line.responsable.name);else hasNone=true;const options=[...byId.entries()].map(([id,name])=>({value:String(id),label:name})).sort((a,b)=>a.label.localeCompare(b.label));if(hasNone)options.push({value:NO_RESPONSABLE,label:"Sans responsable"});return options},[d]);const reconciliationDates=(0,consume_shared_module_default_react_strict_.useMemo)(()=>reconciliationDatesByScope(d?.reconciliation_rows??[]),[d?.reconciliation_rows]);const activeRecoScopes=(0,consume_shared_module_default_react_strict_.useMemo)(()=>new Set(reconciliationDates.keys()),[reconciliationDates]);const reconciliationGaps=(0,consume_shared_module_default_react_strict_.useMemo)(()=>reconciliationGapCounts(d?.reconciliation_rows??[]),[d?.reconciliation_rows]);const openDrill=(0,consume_shared_module_default_react_strict_.useCallback)((row,category=null)=>{const selection={dossier:row.dossier,source:row.source,category};setDrill(selection);window.history.pushState(window.history.state,"",urlWithDrill(new URL(window.location.href),selection))},[]);const closeDrill=(0,consume_shared_module_default_react_strict_.useCallback)(()=>{setDrill(null);window.history.replaceState(window.history.state,"",urlWithDrill(new URL(window.location.href),null));setMuteDraft(new Map)},[]);const filterResponsable=(0,consume_shared_module_default_react_strict_.useCallback)(row=>{const id=row.responsable?String(row.responsable.id):NO_RESPONSABLE;setSelectedDossier(null);setManagedOnly(true);setStatusFilter("all");setSelectedResponsable(current=>current===id?null:id)},[]);const unifiedCols=(0,consume_shared_module_default_react_strict_.useMemo)(()=>buildUnifiedCols(d?.computed_at,openDrill,filterResponsable,activeRecoScopes,reconciliationDates,reconciliationGaps),[d?.computed_at,openDrill,filterResponsable,activeRecoScopes,reconciliationDates,reconciliationGaps]);const drillData=(0,consume_shared_module_default_react_strict_.useMemo)(()=>{if(!drillDossier||!d?.available)return null;const scoped=rows=>(rows??[]).filter(r=>r.dossier===drillDossier&&r.source===drillProvider);const reconciliation=scoped(d.reconciliation_rows).sort((a,b)=>{const av=a.last_reconciled_period_end??"0000-00-00";const bv=b.last_reconciled_period_end??"0000-00-00";return av.localeCompare(bv)});const lines=(d.dossier_lines??[]).filter(l=>l.dossier===drillDossier&&l.source===drillProvider);const sumLines=pick=>lines.reduce((acc,l)=>acc+(pick(l)??0),0);return{reconciliation,suspense:scoped(d.suspense_rows),internalTransfers:scoped(d.internal_transfer_rows),supplier:scoped(d.supplier_rows),customer:scoped(d.customer_rows),factor:scoped(d.factor_rows??[]),pendingInvoicesAccounting:lines[0]?.pending_supplier_invoices_top??null,pendingInvoicesManagement:lines[0]?.management_supplier_invoices_inbox_top??null,pendingInvoicesAccountingCount:lines[0]?.pending_supplier_invoices??null,pendingInvoicesManagementCount:lines[0]?.management_supplier_invoices_inbox??null,invoiceLine:lines[0]??null,provisionCp:lines[0]?.provision_cp??null,currency:lines[0]?.currency??null,totals:{suspense:sumLines(l=>l.solde_attente_eur),internalTransfers:sumLines(l=>l.solde_virements_eur),supplier:sumLines(l=>l.total_fournisseurs_eur),customer:sumLines(l=>l.total_clients_eur),factor:sumLines(l=>l.total_factor_eur??0)}}},[drillDossier,drillProvider,d]);const provisionDrillEntries=drillData?.provisionCp?.recent_entries??drillData?.provisionCp?.entries??[];const reconciliationRows=(0,consume_shared_module_default_react_strict_.useMemo)(()=>{const rows=drillData?.reconciliation??[];if(0===muteDraft.size)return rows;return rows.map(row=>{const draft=muteDraft.get(muteKey(row.airporting_company_id,row.account_id));return void 0===draft?row:{...row,muted:draft}})},[drillData,muteDraft]);const onToggleMute=(0,consume_shared_module_default_react_strict_.useCallback)(({company_id,account_id,muted})=>{setMuteDraft(current=>{const next=new Map(current);const key=muteKey(company_id,account_id);const server=(drillData?.reconciliation??[]).find(row=>row.airporting_company_id===company_id&&row.account_id===account_id);if(server&&server.muted===muted)next.delete(key);else next.set(key,muted);return next})},[drillData]);const drillRecoCols=(0,consume_shared_module_default_react_strict_.useMemo)(()=>buildDrillRecoCols(onToggleMute),[onToggleMute]);const pendingMutes=(0,consume_shared_module_default_react_strict_.useMemo)(()=>{const changes=[];for(const[key,muted]of muteDraft){const[companyId,accountId]=key.split(":");changes.push({company_id:Number(companyId),account_id:Number(accountId),muted})}return changes},[muteDraft]);const summaryRows=(0,consume_shared_module_default_react_strict_.useMemo)(()=>withScoreFilter(withResponsableFilter(withManagedFilter(withDossierFilter(d?.dossier_lines??[],selectedDossier),managedOnly),selectedResponsable),statusFilter),[d,selectedDossier,managedOnly,selectedResponsable,statusFilter]);const scoreTiles=(0,consume_shared_module_default_react_strict_.useMemo)(()=>{const base=withResponsableFilter(withManagedFilter(withDossierFilter(d?.dossier_lines??[],selectedDossier),managedOnly),selectedResponsable);const count=bucket=>base.filter(r=>scoreBucket(r)===bucket).length;return[{key:"all",label:"Dossiers",value:base.length,color:void 0},{key:"bon",label:"4 \xe0 5 \xe9toiles",value:count("bon"),color:"green"},{key:"moyen",label:"3 \xe9toiles",value:count("moyen"),color:"yellow"},{key:"faible",label:"1 \xe0 2 \xe9toiles",value:count("faible"),color:"red"},{key:"non_note",label:"Non not\xe9s",value:count("non_note"),color:"gray"}]},[d,selectedDossier,managedOnly,selectedResponsable]);const topSuspenseRows=(0,consume_shared_module_default_react_strict_.useMemo)(()=>withDossierFilter(d?.summary?.top_5_suspense??[],selectedDossier),[d,selectedDossier]);const topSupplierRows=(0,consume_shared_module_default_react_strict_.useMemo)(()=>withDossierFilter(d?.summary?.top_5_supplier_debtors??[],selectedDossier),[d,selectedDossier]);const topCustomerRows=(0,consume_shared_module_default_react_strict_.useMemo)(()=>withDossierFilter(d?.summary?.top_5_customer_creditors??[],selectedDossier),[d,selectedDossier]);const suspenseRows=(0,consume_shared_module_default_react_strict_.useMemo)(()=>withManagedFilter(withDossierFilter(d?.suspense_rows??[],selectedDossier),managedOnly),[d,selectedDossier,managedOnly]);const internalTransferRows=(0,consume_shared_module_default_react_strict_.useMemo)(()=>withManagedFilter(withDossierFilter(d?.internal_transfer_rows??[],selectedDossier),managedOnly),[d,selectedDossier,managedOnly]);const supplierRows=(0,consume_shared_module_default_react_strict_.useMemo)(()=>withManagedFilter(withDossierFilter(d?.supplier_rows??[],selectedDossier),managedOnly),[d,selectedDossier,managedOnly]);const customerRows=(0,consume_shared_module_default_react_strict_.useMemo)(()=>withManagedFilter(withDossierFilter(d?.customer_rows??[],selectedDossier),managedOnly),[d,selectedDossier,managedOnly]);return/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Container,{fluid:true,my:isMobile?0:"md",px:isMobile?12:void 0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(PageHeader.m,{title:"Accounting",updatedAt:d?.computed_at?new Date(d.computed_at).getTime():latest.dataUpdatedAt,isFetching:latest.isFetching,isError:latest.isError,onRefresh:()=>latest.refetch(),actions:/*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tooltip,{label:headerHidden?`Afficher les filtres${activeFilterCount>0?` (${activeFilterCount} actif${activeFilterCount>1?"s":""})`:""}`:"Masquer les filtres",withArrow:true,children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Indicator,{disabled:!headerHidden||0===activeFilterCount,label:activeFilterCount,size:16,children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.ActionIcon,{variant:"default",size:"lg","aria-label":headerHidden?"Afficher les filtres":"Masquer les filtres",onClick:()=>setHeaderHidden(hidden=>!hidden),children:headerHidden?/*#__PURE__*/(0,jsx_runtime.jsx)(tabler_icons_react_mjs_.IconLayoutNavbarExpand,{size:18}):/*#__PURE__*/(0,jsx_runtime.jsx)(tabler_icons_react_mjs_.IconLayoutNavbarCollapse,{size:18})})})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Button,{loading:recompute.isPending,disabled:latest.isPending,onClick:()=>recompute.mutate(),variant:"light",size:isMobile?"xs":"sm",children:"Recalculer"})]})}),latest.isFetching&&!consoleLoading&&/*#__PURE__*/(0,jsx_runtime.jsx)(LoadingProgress.A,{label:d?"Actualisation des donn\xe9es comptables…":"Chargement des donn\xe9es comptables…"}),d?d.available?/*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{mb:"md",align:"end",gap:"sm",display:headerHidden?"none":void 0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Select,{label:"Focus dossier",placeholder:"Tous les dossiers",data:allDossiers.map(dos=>({value:dos,label:dos})),value:selectedDossier,onChange:setSelectedDossier,searchable:true,clearable:true,w:isMobile?"100%":320}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Select,{label:"Responsable",placeholder:"Tous les responsables",data:responsableOptions,value:selectedResponsable,onChange:setSelectedResponsable,searchable:true,clearable:true,w:isMobile?"100%":240}),(selectedDossier||selectedResponsable)&&/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Button,{variant:"subtle",onClick:()=>{setSelectedDossier(null);setSelectedResponsable(null)},w:isMobile?"100%":void 0,children:"R\xe9initialiser"}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.SegmentedControl,{value:managedOnly?"managed":"all",onChange:v=>setManagedOnly("managed"===v),data:[{label:"G\xe9r\xe9s",value:"managed"},{label:"Tous",value:"all"}],w:isMobile?"100%":void 0})]}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Tabs,{value:tab,onChange:setTab,children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Tabs.List,{style:isMobile?{flexWrap:"nowrap",overflowX:"auto",overflowY:"hidden"}:void 0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tabs.Tab,{value:"resume",children:"R\xe9sum\xe9"}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tabs.Tab,{value:"dossiers",children:"Dossiers"})]}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Tabs.Panel,{value:"resume",pt:"md",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.SimpleGrid,{cols:isMobile?2:5,mb:"md",spacing:"sm",display:headerHidden?"none":void 0,children:scoreTiles.map(tile=>{const active=statusFilter===tile.key;return/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Card,{withBorder:active,style:{cursor:"pointer",borderColor:active?"var(--mantine-color-blue-5)":void 0},onClick:()=>setStatusFilter(tile.key),children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",children:tile.label}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{fw:700,size:"xl",c:tile.color,children:tile.value})]},tile.key)})}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileDossierLineList,{rows:summaryRows,onDrill:openDrill,computedAt:d?.computed_at,activeRecoScopes:activeRecoScopes,reconciliationDates:reconciliationDates,reconciliationGaps:reconciliationGaps}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{maxHeight:headerHidden?"calc(100vh - 170px)":"calc(100vh - 320px)",columns:unifiedCols,rows:summaryRows,rowKey:r=>`${r.source}:${r.dossier}`})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tabs.Panel,{value:"top5",pt:"md",children:/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Stack,{gap:"lg",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Title,{order:4,mb:"sm",children:"Top 5 comptes d'attente (471)"}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileTopSuspenseList,{rows:topSuspenseRows,onRowClick:openDrill}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:TOP_SUSPENSE_COLS,rows:topSuspenseRows,onRowClick:openDrill})]}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Title,{order:4,mb:"sm",children:"Top 5 fournisseurs d\xe9biteurs (401)"}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileTopSupplierList,{rows:topSupplierRows,onRowClick:openDrill}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:TOP_SUPPLIER_COLS,rows:topSupplierRows,onRowClick:openDrill})]}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Title,{order:4,mb:"sm",children:"Top 5 clients cr\xe9diteurs (411)"}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileTopCustomerList,{rows:topCustomerRows,onRowClick:openDrill}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:TOP_CUSTOMER_COLS,rows:topCustomerRows,onRowClick:openDrill})]})]})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tabs.Panel,{value:"s471",pt:"md",children:isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileSuspenseList,{rows:suspenseRows,onRowClick:openDrill}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:SUSPENSE_COLS,rows:suspenseRows,onRowClick:openDrill})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tabs.Panel,{value:"s58",pt:"md",children:isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileSuspenseList,{rows:internalTransferRows,onRowClick:openDrill}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:SUSPENSE_COLS,rows:internalTransferRows,onRowClick:openDrill})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tabs.Panel,{value:"s401",pt:"md",children:isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileSupplierList,{rows:supplierRows,onRowClick:openDrill}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:SUPPLIER_COLS,rows:supplierRows,onRowClick:openDrill})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tabs.Panel,{value:"s411",pt:"md",children:isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileCustomerList,{rows:customerRows,onRowClick:openDrill}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:CUSTOMER_COLS,rows:customerRows,onRowClick:openDrill})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tabs.Panel,{value:"dossiers",pt:"md",children:/*#__PURE__*/(0,jsx_runtime.jsx)(DossiersTab,{})})]})]}):/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{c:"dimmed",children:"Aucun snapshot disponible - lancez \xab Recalculer \xbb ou attendez le run nocturne."}):latest.isError?/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Alert,{color:"red",title:"Les donn\xe9es comptables n’ont pas pu \xeatre charg\xe9es",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"sm",mb:"sm",children:"V\xe9rifiez votre connexion puis r\xe9essayez."}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Button,{variant:"light",onClick:()=>void latest.refetch(),loading:latest.isFetching,children:"R\xe9essayer"})]}):"paused"===latest.fetchStatus?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{c:"dimmed",children:"En attente de connexion…"}):null,latest.isError?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{c:"red",mt:"md",children:"Erreur de chargement."}):null,/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Drawer,{opened:!!drillDossier,onClose:closeDrill,position:isMobile?"bottom":"right",size:isMobile?"calc(100dvh - 88px)":"reconciliation"===drillCategory?"min(1400px, 95vw)":"xl",title:drillDossier?/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",align:"center",wrap:isMobile?"wrap":"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Title,{order:isMobile?5:4,children:drillCategoryLabel(drillCategory)?`${drillCategoryLabel(drillCategory)} : ${drillDossier}`:`Dossier ${drillDossier}`}),drillProvider&&/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:4,wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:drillProvider}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"sm",c:"dimmed",children:drillProvider})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Button,{size:"xs",variant:"light",onClick:()=>{setSelectedDossier(drillDossier);closeDrill()},children:"Focus sur ce dossier"})]}):null,styles:isMobile?{body:{padding:12,paddingBottom:24}}:void 0,children:drillData&&/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Stack,{gap:"md",children:[(null===drillCategory||"reconciliation"===drillCategory)&&/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"center",mb:6,children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Title,{order:5,children:["Rappros bancaires (",drillData.reconciliation.length,")"]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Button,{size:"xs",variant:pendingMutes.length>0?"filled":"light",disabled:0===pendingMutes.length,loading:saveReconciliationMutes.isPending,onClick:()=>saveReconciliationMutes.mutate(pendingMutes,{onSuccess:()=>setMuteDraft(new Map)}),children:pendingMutes.length>1?`Enregistrer (${pendingMutes.length})`:"Enregistrer"})]}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileReconciliationList,{rows:reconciliationRows,onToggleMute:onToggleMute}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:drillRecoCols,rows:reconciliationRows,rowKey:row=>`${row.airporting_company_id}:${row.account_id}`})]}),(null===drillCategory||"471"===drillCategory)&&/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(DrillSectionTitle,{label:"Comptes d'attente 471",count:drillData.suspense.length,visibleSum:sumBy(drillData.suspense,r=>r.solde_net),total:drillData.totals.suspense,currency:drillData.currency}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileSuspenseList,{rows:drillData.suspense}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:DRILL_SUSPENSE_COLS,rows:drillData.suspense})]}),(null===drillCategory||"58"===drillCategory)&&/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(DrillSectionTitle,{label:"Virements internes 58",count:drillData.internalTransfers.length,visibleSum:sumBy(drillData.internalTransfers,r=>r.solde_net),total:drillData.totals.internalTransfers,currency:drillData.currency}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileSuspenseList,{rows:drillData.internalTransfers}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:DRILL_SUSPENSE_COLS,rows:drillData.internalTransfers})]}),(null===drillCategory||"supplier"===drillCategory)&&/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(DrillSectionTitle,{label:"Fournisseurs d\xe9biteurs 401",count:drillData.supplier.length,visibleSum:sumBy(drillData.supplier,r=>r.solde_debiteur_eur),total:drillData.totals.supplier,currency:drillData.currency}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileSupplierList,{rows:drillData.supplier}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:DRILL_SUPPLIER_COLS,rows:drillData.supplier})]}),(null===drillCategory||"customer"===drillCategory)&&/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(DrillSectionTitle,{label:"Clients cr\xe9diteurs 411",count:drillData.customer.length,visibleSum:sumBy(drillData.customer,r=>r.solde_crediteur_eur),total:drillData.totals.customer,currency:drillData.currency}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileCustomerList,{rows:drillData.customer}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:DRILL_CUSTOMER_COLS,rows:drillData.customer})]}),(null===drillCategory||"factor"===drillCategory)&&drillData.factor.length>0&&/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(DrillSectionTitle,{label:"Cr\xe9ances c\xe9d\xe9es au factor 4116",count:drillData.factor.length,visibleSum:sumBy(drillData.factor,r=>r.solde_eur),total:drillData.totals.factor}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileCustomerList,{rows:drillData.factor.map(factorRowAsCustomerRow)}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:DRILL_FACTOR_COLS,rows:drillData.factor})]}),(null===drillCategory||"supplier_invoices_accounting"===drillCategory)&&drillData.invoiceLine?.source==="pennylane"&&/*#__PURE__*/(0,jsx_runtime.jsx)(PendingInvoiceDrill,{title:"Factures fournisseurs \xe0 traiter (compta)",count:drillData.pendingInvoicesAccountingCount,rows:drillData.pendingInvoicesAccounting,line:drillData.invoiceLine,space:"compta",isMobile:isMobile}),(null===drillCategory||"supplier_invoices_management"===drillCategory)&&drillData.invoiceLine?.source==="pennylane"&&/*#__PURE__*/(0,jsx_runtime.jsx)(PendingInvoiceDrill,{title:"Factures fournisseurs \xe0 traiter (gestion)",count:drillData.pendingInvoicesManagementCount,rows:drillData.pendingInvoicesManagement,line:drillData.invoiceLine,space:"gestion",isMobile:isMobile}),(null===drillCategory||"provision_cp"===drillCategory)&&null!==drillData.provisionCp&&"non_mesurable"!==drillData.provisionCp.status&&/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Title,{order:5,mb:6,children:["Provision CP 4282 + 4382 (",provisionDrillEntries.length," ","\xe9critures sur 18 mois) \xb7 solde"," ",formatCurrency(drillData.provisionCp.balance,drillData.currency)]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",mb:6,children:provisionCpHint(drillData.provisionCp)}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileProvisionList,{rows:provisionDrillEntries}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:DRILL_PROVISION_COLS,rows:provisionDrillEntries})]})]})})]})}const TOP_SUSPENSE_COLS=[{key:"rank",label:"#",numeric:true},{key:"source",label:"Source",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:r.source})},{key:"managed",label:"G\xe9r\xe9",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:r.managed})},{key:"dossier",label:"Dossier"},{key:"solde_eur",label:"Solde 471 (€)",numeric:true},{key:"nb_ecritures",label:"Nb \xe9cr.",numeric:true},{key:"top_libelle",label:"Top \xe9criture"},{key:"top_montant",label:"Montant",numeric:true}];const TOP_SUPPLIER_COLS=[{key:"rank",label:"#",numeric:true},{key:"source",label:"Source",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:r.source})},{key:"managed",label:"Manag\xe9",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:r.managed})},{key:"dossier",label:"Dossier"},{key:"total_eur",label:"Total d\xe9biteur (€)",numeric:true},{key:"nb_fournisseurs",label:"Nb fourn.",numeric:true},{key:"top_nom",label:"Top fournisseur"},{key:"top_montant",label:"Montant",numeric:true}];const TOP_CUSTOMER_COLS=[{key:"rank",label:"#",numeric:true},{key:"source",label:"Source",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:r.source})},{key:"managed",label:"Manag\xe9",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:r.managed})},{key:"dossier",label:"Dossier"},{key:"total_eur",label:"Total cr\xe9diteur (€)",numeric:true},{key:"nb_clients",label:"Nb clients",numeric:true},{key:"top_nom",label:"Top client"},{key:"top_montant",label:"Montant",numeric:true}];function buildUnifiedCols(computedAt,openDrill,filterResponsable,activeRecoScopes,reconciliationDates,reconciliationGaps){const hasReconciliationDrill=row=>null!=reconciliationDateForLine(row,reconciliationDates)||activeRecoScopes.has(reconciliationScopeKey(row));return[{key:"source",label:"Source",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:r.source})},{key:"managed",label:"Manag\xe9",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:r.managed})},{key:"score",label:"Tenue",hint:"Note de tenue comptable sur 5 : un point par contr\xf4le pass\xe9 (factures fournisseurs en attente, banques rapproch\xe9es, compte d’attente, virements internes, comptes tiers). Survolez pour le d\xe9tail.",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ScoreStars,{row:r})},{key:"dossier",label:"Dossier",render:r=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(CompanyLogo.D,{slug:r.slug,updatedAt:r.logo_updated_at,size:20}),/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:r.dossier})]})},{key:"responsable",label:"Responsable",sortValue:r=>r.responsable?.name??"",onCellClick:filterResponsable,render:r=>r.responsable?/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Avatar,{src:r.responsable.avatar_url,size:20,radius:"xl"}),/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:r.responsable.name})]}):/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:"—"})},{key:"fiscal_year_end",label:"Cl\xf4ture",render:r=>r.fiscal_year_end?/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:r.fiscal_year_end.split("-").reverse().join("/")}):/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:"—"})},{key:"solde_attente_eur",label:"Solde 471",numeric:true,render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:formatKeur(r.solde_attente_eur,r.currency),onClick:()=>openDrill(r,"471")})},{key:"solde_virements_eur",label:"Solde 58",numeric:true,render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:formatKeur(r.solde_virements_eur,r.currency),onClick:()=>openDrill(r,"58")})},{key:"total_fournisseurs_eur",label:"Fourn. d\xe9biteurs",numeric:true,render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:formatKeur(r.total_fournisseurs_eur,r.currency),onClick:()=>openDrill(r,"supplier")})},{key:"total_clients_eur",label:"Clients cr\xe9diteurs",numeric:true,render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:formatKeur(r.total_clients_eur,r.currency),onClick:()=>openDrill(r,"customer")})},{key:"total_factor_eur",label:"Cr\xe9ances c\xe9d\xe9es",hint:"Cr\xe9ances c\xe9d\xe9es au factor (comptes 4116) : solde cr\xe9diteur par construction, il vaut moins l’encours c\xe9d\xe9 au portail du factor. Ce n’est pas une anomalie clients.",numeric:true,render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:factorKeur(r),onClick:()=>openDrill(r,"factor")})},{key:"last_reconciliation_date",label:"Rappro le + en retard",isCellClickable:hasReconciliationDrill,onCellClick:row=>{if(hasReconciliationDrill(row))openDrill(row,"reconciliation")},render:r=>{const lastReconciliationDate=reconciliationDateForLine(r,reconciliationDates);const hasActive=activeRecoScopes.has(reconciliationScopeKey(r));return/*#__PURE__*/(0,jsx_runtime.jsxs)("span",{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,c:null==lastReconciliationDate?hasActive?"red":"dimmed":void 0,children:lastReconciliationDate?formatDate(lastReconciliationDate):hasActive?"jamais":"-"}),/*#__PURE__*/(0,jsx_runtime.jsx)(ReconciliationGapBadge,{count:reconciliationGaps.get(reconciliationScopeKey(r))??0})]})}},{key:"pending_supplier_invoices",label:"Factures fournisseurs \xe0 traiter (compta)",hint:"Factures fournisseurs \xe0 traiter c\xf4t\xe9 Comptabilit\xe9 sur l’ann\xe9e civile courante. Cliquez pour voir les 10 plus anciennes (Pennylane). Odoo, Xero et Zoho : brouillons et factures \xe0 valider.",numeric:true,render:r=>{if(null==r.pending_supplier_invoices)return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:"—"});const text=formatNumber(r.pending_supplier_invoices);if("pennylane"!==r.source)return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:text});return/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:text,onClick:()=>openDrill(r,"supplier_invoices_accounting")})}},{key:"management_supplier_invoices_inbox",label:"Factures fournisseurs \xe0 traiter (gestion)",hint:"Nombre affich\xe9 dans la Bo\xeete de r\xe9ception des factures fournisseurs c\xf4t\xe9 Gestion, ou dans les Documents entrants XRP Flex en attente de traitement, toutes dates confondues. Pennylane : cliquez pour voir les 10 plus anciennes.",numeric:true,render:r=>{if(null==r.management_supplier_invoices_inbox)return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:"—"});const text=formatNumber(r.management_supplier_invoices_inbox);if("pennylane"!==r.source)return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:text});return/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:text,onClick:()=>openDrill(r,"supplier_invoices_management")})}},{key:"provision_cp",label:"Provision CP",hint:"Provision de cong\xe9s pay\xe9s (comptes d\xe9di\xe9s 4282 + 4382) : elle doit \xeatre repass\xe9e \xe0 chaque cl\xf4ture annuelle. Alerte si rien de saisi un mois apr\xe8s le mois de cl\xf4ture. Cliquez pour voir les \xe9critures.",render:r=>{const p=r.provision_cp;if(null==p||"non_mesurable"===p.status)return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:"—"});if("en_retard"===p.status)return/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,c:"red",fw:700,children:"non saisie"}),onClick:()=>openDrill(r,"provision_cp")});const text="saisie"===p.status?`saisie le ${formatDate(p.window_entry_date)}`:`\xe9ch\xe9ance le ${formatDate(p.deadline)}`;return/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:text,onClick:()=>openDrill(r,"provision_cp")})}},{key:"last_entry_date",label:"Date mise \xe0 jour",hint:"La plus ancienne des 3 dates de fra\xeecheur : derni\xe8re \xe9criture comptable, dernier import GLA, dernier passage du scrapper rappros/factures. Survolez pour le d\xe9tail des 3 dates.",render:row=>/*#__PURE__*/(0,jsx_runtime.jsx)(UpdateDateCell,{row:row,computedAt:computedAt})}]}const SUSPENSE_COLS=[{key:"source",label:"Source",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:r.source})},{key:"managed",label:"Manag\xe9",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:r.managed})},{key:"dossier",label:"Dossier"},{key:"date",label:"Date"},{key:"numero_compte",label:"N\xb0 Compte"},{key:"libelle_compte",label:"Libell\xe9 compte"},{key:"libelle_ecriture",label:"Libell\xe9 \xe9criture"},{key:"journal",label:"Journal"},{key:"numero_piece",label:"N\xb0 Pi\xe8ce"},{key:"debit",label:"D\xe9bit",numeric:true},{key:"credit",label:"Cr\xe9dit",numeric:true},{key:"solde_net",label:"Solde net",numeric:true},{key:"lettre",label:"Lettr\xe9"},{key:"devise",label:"Devise"}];const SUPPLIER_COLS=[{key:"source",label:"Source",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:r.source})},{key:"managed",label:"Manag\xe9",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:r.managed})},{key:"dossier",label:"Dossier"},{key:"fournisseur",label:"Fournisseur"},{key:"solde_debiteur_eur",label:"Solde d\xe9biteur (€)",numeric:true},{key:"nb_ecritures",label:"Nb \xe9cr. non lettr\xe9es",numeric:true},{key:"devise",label:"Devise"}];const CUSTOMER_COLS=[{key:"source",label:"Source",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:r.source})},{key:"managed",label:"Manag\xe9",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:r.managed})},{key:"dossier",label:"Dossier"},{key:"client",label:"Client"},{key:"solde_crediteur_eur",label:"Solde cr\xe9diteur (€)",numeric:true},{key:"nb_ecritures",label:"Nb \xe9cr. non lettr\xe9es",numeric:true},{key:"devise",label:"Devise"}];function buildDrillRecoCols(onToggleMute){return[{key:"bank_label",label:"Compte",render:r=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(BankLogo,{label:r.bank_label||r.account_name,size:20}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,c:r.muted?"dimmed":void 0,children:recoAccountLabel(r)})]})},{key:"last_reconciled_period_end",label:"Dernier rappro",render:r=>{if(r.muted)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,c:"dimmed",children:"non suivi"});if(null==r.last_reconciled_period_end)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,c:"red",fw:700,children:"jamais"});return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:r.last_reconciled_period_end.split("-").reverse().join("/")})}},{key:"last_movement_date",label:"Derni\xe8re op\xe9ration",hint:"Date de la derni\xe8re \xe9criture r\xe9elle du compte au grand livre. Un compte sans op\xe9ration depuis son dernier rappro n’a rien \xe0 rapprocher.",render:r=>{if(null==r.last_movement_date)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,c:"dimmed",children:"—"});return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:formatDate(r.last_movement_date)})}},{key:"unreconciled_since",label:"\xc0 rapprocher depuis",hint:"Premi\xe8re \xe9criture post\xe9rieure au dernier rappro. C’est de l\xe0 que date le retard r\xe9el, et non du dernier rappro : un compte rapproch\xe9 en avril puis rest\xe9 sans mouvement jusqu’en septembre n’accuse pas cinq mois de retard.",render:r=>{if(r.muted)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,c:"dimmed",children:"non suivi"});if(null!=r.unreconciled_since)return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:formatDate(r.unreconciled_since)});if(null==r.last_movement_date)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,c:"dimmed",children:"—"});return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,c:"teal",children:"rien \xe0 rapprocher"})}},{key:"reconciled_balance_reading",label:"Soldes du dernier rappro termin\xe9",hint:"Seul un \xe9cart sur cette p\xe9riode, pour un compte suivi, porte le signal \xe0 v\xe9rifier.",sortValue:row=>balanceGap(row.reconciled_balance_reading),render:row=>/*#__PURE__*/(0,jsx_runtime.jsx)(ReconciliationBalanceCell,{row:row})},{key:"muted",label:"Suivi",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Switch,{size:"sm",checked:!r.muted,label:r.muted?"non suivi":"suivi",onLabel:"suivi",onChange:e=>onToggleMute({company_id:r.airporting_company_id,account_id:r.account_id,muted:!e.currentTarget.checked})})}]}const DRILL_SUSPENSE_COLS=[{key:"date",label:"Date"},{key:"numero_compte",label:"N\xb0 Compte"},{key:"libelle_ecriture",label:"Libell\xe9"},{key:"debit",label:"D\xe9bit",numeric:true},{key:"credit",label:"Cr\xe9dit",numeric:true},{key:"solde_net",label:"Solde net",numeric:true},{key:"lettre",label:"Lettr\xe9"}];const DRILL_SUPPLIER_COLS=[{key:"fournisseur",label:"Fournisseur"},{key:"solde_debiteur_eur",label:"Solde d\xe9biteur (€)",numeric:true},{key:"nb_ecritures",label:"Nb \xe9cr.",numeric:true},{key:"devise",label:"Devise"}];const DRILL_FACTOR_COLS=[{key:"compte",label:"Compte"},{key:"solde_eur",label:"Solde (€)",numeric:true},{key:"nb_ecritures",label:"Nb \xe9cr.",numeric:true},{key:"devise",label:"Devise"}];const DRILL_PROVISION_COLS=[{key:"date",label:"Date",render:r=>formatDate(r.date)},{key:"account",label:"Compte"},{key:"journal_label",label:"Journal",render:r=>r.journal_label??r.journal_code??"—"},{key:"label",label:"Libell\xe9",render:r=>r.label||r.account_label||"—"},{key:"debit",label:"D\xe9bit",numeric:true},{key:"credit",label:"Cr\xe9dit",numeric:true}];const DRILL_PENDING_INVOICE_COLS=[{key:"date",label:"Date",render:r=>formatDate(r.date)},{key:"label",label:"Facture"},{key:"invoice_number",label:"N\xb0 facture"},{key:"amount",label:"Montant",numeric:true,render:r=>formatCurrency(r.amount,r.currency)},{key:"status",label:"Statut"}];function factorRowAsCustomerRow(r){return{source:r.source,dossier:r.dossier,managed:r.managed,client:r.compte,solde_crediteur_eur:r.solde_eur,nb_ecritures:r.nb_ecritures,devise:r.devise}}const DRILL_CUSTOMER_COLS=[{key:"client",label:"Client"},{key:"solde_crediteur_eur",label:"Solde cr\xe9diteur (€)",numeric:true},{key:"nb_ecritures",label:"Nb \xe9cr.",numeric:true},{key:"devise",label:"Devise"}];function EtatSaisie(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(consume_shared_module_default_react_strict_.StrictMode,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(providers.C,{...props,children:/*#__PURE__*/(0,jsx_runtime.jsx)(EtatSaisieApp,{})})})}}}]);
|
|
1
|
+
"use strict";(globalThis["chunk_tech_app"]=globalThis["chunk_tech_app"]||[]).push([["7915"],{3437:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{D:()=>CompanyLogo});var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(5893);var _mantine_core__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(207);const BASE_URL="https://s3.dualstack.eu-west-3.amazonaws.com/media.airporting/companies";function CompanyLogo({slug,updatedAt,size=20,...rest}){const base=`${BASE_URL}/${slug}.png`;const url=updatedAt?`${base}?v=${new Date(updatedAt).getTime()}`:base;return/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mantine_core__WEBPACK_IMPORTED_MODULE_1__.Image,{src:url,fallbackSrc:`${BASE_URL}/undefined.png`,alt:slug??"",w:size,h:size,fit:"contain",radius:"sm",style:{aspectRatio:1},...rest})}},1354:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{m:()=>PageHeader});var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(5893);var _mantine_core__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(207);var _tabler_icons_react__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(9632);var react__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(5850);function formatRelative(now,then){const seconds=Math.max(0,Math.floor((now-then)/1e3));if(seconds<5)return"\xe0 l’instant";if(seconds<60)return`il y a ${seconds}s`;const minutes=Math.floor(seconds/60);if(minutes<60)return`il y a ${minutes} min`;const hours=Math.floor(minutes/60);return`il y a ${hours} h`}function PageHeader({title,leading,badge,updatedAt,isFetching,isError,onRefresh,actions}){const[now,setNow]=(0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(()=>Date.now());(0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(()=>{if(!updatedAt)return;const id=window.setInterval(()=>setNow(Date.now()),1e3);return()=>window.clearInterval(id)},[updatedAt]);const relative=updatedAt?formatRelative(now,updatedAt):null;const color=isError?"orange":isFetching?"teal":"dimmed";return/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mantine_core__WEBPACK_IMPORTED_MODULE_1__.Group,{justify:"space-between",align:"center",mih:48,mb:"md",children:[/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mantine_core__WEBPACK_IMPORTED_MODULE_1__.Group,{gap:"sm",align:"center",children:[leading,/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mantine_core__WEBPACK_IMPORTED_MODULE_1__.Title,{order:2,children:title}),badge]}),/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mantine_core__WEBPACK_IMPORTED_MODULE_1__.Group,{gap:"sm",align:"center",children:[relative&&/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mantine_core__WEBPACK_IMPORTED_MODULE_1__.Text,{size:"xs",c:color,fw:isFetching?600:400,"data-testid":"page-header-freshness",children:isError?"\xe9chec maj":isFetching?"maj…":relative}),onRefresh&&/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mantine_core__WEBPACK_IMPORTED_MODULE_1__.Tooltip,{label:"Rafra\xeechir",children:/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mantine_core__WEBPACK_IMPORTED_MODULE_1__.ActionIcon,{variant:"default",size:"md",onClick:onRefresh,loading:isFetching,"aria-label":"Refresh",children:/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_tabler_icons_react__WEBPACK_IMPORTED_MODULE_2__.IconRefresh,{size:16})})}),actions]})]})}},9781:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{h:()=>QuickBooksIcon});var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(5893);function QuickBooksIcon(props){const size=props.size??20;return/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("svg",{width:size,height:size,viewBox:"0 0 24 24",role:"img","aria-label":"QuickBooks",children:[/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("title",{children:"QuickBooks"}),/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("circle",{cx:"12",cy:"12",r:"12",fill:"#2CA01C"}),/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("text",{x:"12",y:"16.5",textAnchor:"middle",fontSize:"12",fontWeight:"700",fill:"#ffffff",fontFamily:"Arial, Helvetica, sans-serif",children:"qb"})]})}},243:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{j:()=>logoDevUrl});const LOGO_DEV_TOKEN="pk_BVN4OQv0Qs-bnqjdIgTppg";function logoDevUrl(domain){return`https://img.logo.dev/${domain}?token=${LOGO_DEV_TOKEN}`}},7229:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.r(__webpack_exports__);__webpack_require__.d(__webpack_exports__,{default:()=>EtatSaisie});var jsx_runtime=__webpack_require__(5893);var consume_shared_module_default_react_strict_=__webpack_require__(5850);var providers=__webpack_require__(7034);var index_mjs_=__webpack_require__(207);var esm_index_mjs_=__webpack_require__(3863);var tabler_icons_react_mjs_=__webpack_require__(9632);var index_js_=__webpack_require__(6197);var useApi=__webpack_require__(4148);function useEtatSaisieLatest(){const api=(0,useApi.h)();return(0,index_js_.useQuery)({queryKey:["tech","etat-saisie","latest"],queryFn:async()=>(await api.etatSaisie.getLatestV1()).data,staleTime:6e5,refetchOnWindowFocus:false})}function useEtatSaisieRecompute(){const api=(0,useApi.h)();const qc=(0,index_js_.useQueryClient)();return(0,index_js_.useMutation)({mutationFn:async()=>(await api.etatSaisie.recomputeV1()).data,onSuccess:()=>qc.invalidateQueries({queryKey:["tech","etat-saisie","latest"]})})}var notifications_esm_index_mjs_=__webpack_require__(1455);class PartialMuteSaveError extends Error{saved;total;cause;constructor(saved,total,cause){super(`${saved}/${total} changements enregistr\xe9s avant l'\xe9chec`);this.name="PartialMuteSaveError";this.saved=saved;this.total=total;this.cause=cause}}function useSaveReconciliationMutes(){const api=(0,useApi.h)();const qc=(0,index_js_.useQueryClient)();return(0,index_js_.useMutation)({mutationFn:async changes=>{let saved=0;for(const change of changes){try{await api.etatSaisie.setReconciliationMuteV1({company_id:change.company_id,account_id:change.account_id,muted:change.muted})}catch(err){throw new PartialMuteSaveError(saved,changes.length,err)}saved+=1}return saved},onSuccess:async saved=>{notifications_esm_index_mjs_.notifications.show({title:"Suivi des rappros",message:saved>1?`${saved} changements enregistr\xe9s`:"Changement enregistr\xe9",color:"teal"});await Promise.all([qc.invalidateQueries({queryKey:["tech","etat-saisie","dossiers"]}),qc.invalidateQueries({queryKey:["tech","etat-saisie","latest"]})])},onError:async err=>{const partial=err instanceof PartialMuteSaveError?err:null;notifications_esm_index_mjs_.notifications.show({title:"Suivi des rappros",message:partial?`${partial.saved} changement(s) sur ${partial.total} enregistr\xe9(s), les suivants ont \xe9chou\xe9`:err?.error?.error??err?.message??"Les changements n'ont pas \xe9t\xe9 enregistr\xe9s",color:"red"});if(partial&&partial.saved>0)await Promise.all([qc.invalidateQueries({queryKey:["tech","etat-saisie","dossiers"]}),qc.invalidateQueries({queryKey:["tech","etat-saisie","latest"]})])}})}function DetailTableInner(props){const{columns,rows,onRowClick,rowKey,maxHeight}=props;const[sortKey,setSortKey]=(0,consume_shared_module_default_react_strict_.useState)(null);const[asc,setAsc]=(0,consume_shared_module_default_react_strict_.useState)(false);const sortColumn=sortKey?columns.find(c=>c.key===sortKey):void 0;const sorted=[...rows].sort((a,b)=>{if(!sortKey)return 0;const av=sortColumn?.sortValue?sortColumn.sortValue(a):a[sortKey];const bv=sortColumn?.sortValue?sortColumn.sortValue(b):b[sortKey];if("number"==typeof av&&"number"==typeof bv)return asc?av-bv:bv-av;return asc?String(av).localeCompare(String(bv)):String(bv).localeCompare(String(av))});const toggle=k=>{if(sortKey===k)setAsc(v=>!v);else{setSortKey(k);setAsc(false)}};const fmt=(v,numeric)=>{if(numeric&&"number"==typeof v)return v.toLocaleString("fr-FR",{minimumFractionDigits:0,maximumFractionDigits:0});if("boolean"==typeof v)return v?"✓":"";if(null==v)return"-";if("object"==typeof v)return"-";return String(v)};const table=/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Table,{striped:true,highlightOnHover:true,withTableBorder:true,stickyHeader:true,fz:"sm",styles:{th:{fontSize:"var(--mantine-font-size-sm)"},td:{fontSize:"var(--mantine-font-size-sm)"}},children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Thead,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Tr,{children:columns.map(c=>/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Th,{onClick:()=>toggle(c.key),style:{cursor:"pointer"},children:/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:4,wrap:"nowrap",component:"span",display:"inline-flex",children:[/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:c.label}),c.hint?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tooltip,{label:c.hint,multiline:true,w:260,withArrow:true,children:/*#__PURE__*/(0,jsx_runtime.jsx)("span",{style:{display:"inline-flex",alignItems:"center"},onClick:e=>e.stopPropagation(),children:/*#__PURE__*/(0,jsx_runtime.jsx)(tabler_icons_react_mjs_.IconInfoCircle,{size:13})})}):null,/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:sortKey===c.key?asc?" ▲":" ▼":""})]})},c.key))})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Tbody,{children:0===sorted.length?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Tr,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Td,{colSpan:columns.length,children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{c:"dimmed",ta:"center",children:"Aucune ligne"})})}):sorted.map((row,i)=>/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Tr,{onClick:onRowClick?()=>onRowClick(row):void 0,style:onRowClick?{cursor:"pointer"}:void 0,children:columns.map(c=>/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Td,{onClick:c.onCellClick?event=>{event.stopPropagation();c.onCellClick?.(row)}:void 0,style:c.numeric||c.onCellClick?{...c.numeric?{textAlign:"right",fontVariantNumeric:"tabular-nums"}:{},...c.onCellClick&&(c.isCellClickable?.(row)??true)?{cursor:"pointer"}:{}}:void 0,children:c.render?c.render(row):fmt(row[c.key],c.numeric)},c.key))},rowKey?rowKey(row,i):i))})]});if(void 0===maxHeight)return table;return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.ScrollContainer,{minWidth:0,mah:maxHeight,type:"native",children:table})}const DetailTable=/*#__PURE__*/(0,consume_shared_module_default_react_strict_.memo)(DetailTableInner);function useDossiers(){const api=(0,useApi.h)();return(0,index_js_.useQuery)({queryKey:["tech","etat-saisie","dossiers"],queryFn:async()=>(await api.etatSaisie.getDossiersV1()).data,refetchOnWindowFocus:true})}function useSaveDossierAssignments(){const api=(0,useApi.h)();const qc=(0,index_js_.useQueryClient)();return(0,index_js_.useMutation)({mutationFn:async changes=>{for(const change of changes){if(null!=change.managed)await api.etatSaisie.setManagedV1({id:change.id},{managed:change.managed});if(void 0!==change.notionUserId)await api.etatSaisie.setResponsableV1({id:change.id},{notion_user_id:change.notionUserId})}return changes.length},onSuccess:()=>{qc.invalidateQueries({queryKey:["tech","etat-saisie","dossiers"]});qc.invalidateQueries({queryKey:["tech","etat-saisie","latest"]})}})}var logoDev=__webpack_require__(243);var QuickBooksIcon=__webpack_require__(9781);const PROVIDER_DOMAIN={cegid_xrp_flex:"cegid.com",pennylane:"pennylane.com",zohobooks:"zoho.com",xero:"xero.com",odoo:"odoo.com"};function ProviderIcon(props){const{provider}=props;if(!provider)return null;if("quickbooks"===provider)return/*#__PURE__*/(0,jsx_runtime.jsx)(QuickBooksIcon.h,{size:20});const domain=PROVIDER_DOMAIN[provider];if(!domain)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Badge,{size:"sm",variant:"light",color:"gray",title:provider,children:provider.slice(0,2).toUpperCase()});return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Image,{src:(0,logoDev.j)(domain),alt:provider,title:provider,w:20,h:20,fit:"contain",radius:"sm",style:{aspectRatio:1}})}function DossiersTab(){const isMobile=(0,esm_index_mjs_.useMediaQuery)("(max-width: 48em)",false);const dossiers=useDossiers();const save=useSaveDossierAssignments();const[filter,setFilter]=(0,consume_shared_module_default_react_strict_.useState)("");const[draft,setDraft]=(0,consume_shared_module_default_react_strict_.useState)({});(0,consume_shared_module_default_react_strict_.useEffect)(()=>{if(dossiers.data)setDraft({})},[dossiers.data]);const managedOf=dossier=>draft[dossier.airporting_id]?.managed??dossier.managed;const responsableIdOf=dossier=>{const pending=draft[dossier.airporting_id];if(pending&&"responsableId"in pending)return pending.responsableId??null;return dossier.responsable?dossier.responsable.id:null};const setManagedDraft=(dossier,managed)=>setDraft(current=>({...current,[dossier.airporting_id]:{...current[dossier.airporting_id],managed}}));const setResponsableDraft=(dossier,responsableId)=>setDraft(current=>({...current,[dossier.airporting_id]:{...current[dossier.airporting_id],responsableId}}));const options=dossiers.data?.responsable_options??[];const optionData=options.map(u=>({value:String(u.id),label:u.name}));const avatarOf=responsableId=>null==responsableId?void 0:options.find(u=>u.id===responsableId)?.avatar_url;const all=dossiers.data?.dossiers??[];const rows=(0,consume_shared_module_default_react_strict_.useMemo)(()=>{const needle=filter.trim().toLowerCase();const filtered=needle?all.filter(dossier=>dossier.display_name.toLowerCase().includes(needle)||dossier.slug.toLowerCase().includes(needle)):all;return[...filtered].sort((a,b)=>a.display_name.localeCompare(b.display_name))},[all,filter]);const changes=all.flatMap(dossier=>{const change={id:dossier.airporting_id};const managed=managedOf(dossier);if(managed!==dossier.managed)change.managed=managed;const responsableId=responsableIdOf(dossier);const current=dossier.responsable?dossier.responsable.id:null;if(responsableId!==current)change.notionUserId=responsableId;return null!=change.managed||void 0!==change.notionUserId?[change]:[]});if(dossiers.isError)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{c:"red",mt:"md",children:"Erreur de chargement des dossiers."});const saveButton=/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Button,{size:"xs",loading:save.isPending,disabled:0===changes.length,onClick:()=>save.mutate(changes),children:changes.length>0?`Enregistrer (${changes.length})`:"Enregistrer"});return/*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{mb:"md",justify:"space-between",wrap:"wrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.TextInput,{placeholder:"Filtrer par nom ou slug",value:filter,onChange:event=>setFilter(event.currentTarget.value),w:isMobile?"100%":320}),saveButton]}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Stack,{gap:"sm",children:0===rows.length?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{c:"dimmed",ta:"center",py:"xl",children:"Aucun dossier"}):rows.map(dossier=>/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Card,{withBorder:true,p:"sm",radius:"md",children:/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Stack,{gap:"sm",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"flex-start",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",miw:0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:dossier.provider}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{minWidth:0},children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{fw:700,size:"sm",lineClamp:1,children:dossier.display_name}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",lineClamp:1,children:dossier.slug})]})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Switch,{checked:managedOf(dossier),onChange:event=>setManagedDraft(dossier,event.currentTarget.checked)})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Select,{placeholder:"Responsable",data:optionData,value:null==responsableIdOf(dossier)?null:String(responsableIdOf(dossier)),onChange:v=>setResponsableDraft(dossier,v?Number(v):null),searchable:true,clearable:true,leftSection:avatarOf(responsableIdOf(dossier))?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Avatar,{src:avatarOf(responsableIdOf(dossier)),size:20,radius:"xl"}):void 0})]})},`${dossier.airporting_id}:${dossier.provider}`))}):/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Table,{striped:true,highlightOnHover:true,withTableBorder:true,stickyHeader:true,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Thead,{children:/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Table.Tr,{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Th,{children:"Source"}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Th,{children:"Dossier"}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Th,{children:"G\xe9r\xe9"}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Th,{children:"Responsable"})]})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Tbody,{children:0===rows.length?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Tr,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Td,{colSpan:4,children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{c:"dimmed",ta:"center",children:"Aucun dossier"})})}):rows.map(dossier=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Table.Tr,{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Td,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:dossier.provider})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Td,{children:dossier.display_name}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Td,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Switch,{checked:managedOf(dossier),onChange:event=>setManagedDraft(dossier,event.currentTarget.checked)})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Table.Td,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Select,{placeholder:"—",data:optionData,value:null==responsableIdOf(dossier)?null:String(responsableIdOf(dossier)),onChange:v=>setResponsableDraft(dossier,v?Number(v):null),searchable:true,clearable:true,w:220,leftSection:avatarOf(responsableIdOf(dossier))?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Avatar,{src:avatarOf(responsableIdOf(dossier)),size:20,radius:"xl"}):void 0})})]},`${dossier.airporting_id}:${dossier.provider}`))})]})]})}const MAX_STARS=5;const REASON_BADGES={vide:{label:"Vide",color:"gray"},erreur_scan:{label:"Erreur de scan",color:"red"},couverture_connecteur:{label:"Non not\xe9",color:"gray"}};const VERDICT_STYLE={parfait:{color:"green",symbol:"✓"},vert:{color:"green",symbol:"✓"},orange:{color:"orange",symbol:"!"},rouge:{color:"red",symbol:"✕"},non_mesurable:{color:"gray",symbol:"\xb7"}};function starColor(score){if(score>=4)return"var(--mantine-color-green-6)";if(score>=3)return"var(--mantine-color-yellow-6)";if(score>=2)return"var(--mantine-color-orange-6)";return"var(--mantine-color-red-6)"}function Stars(props){const color=starColor(props.score);const items=[];for(let i=1;i<=MAX_STARS;i+=1)if(props.score>=i)items.push(/*#__PURE__*/(0,jsx_runtime.jsx)(tabler_icons_react_mjs_.IconStarFilled,{size:13,color:color},i));else if(props.score>=i-.5)items.push(/*#__PURE__*/(0,jsx_runtime.jsx)(tabler_icons_react_mjs_.IconStarHalfFilled,{size:13,color:color},i));else items.push(/*#__PURE__*/(0,jsx_runtime.jsx)(tabler_icons_react_mjs_.IconStar,{size:13,color:"var(--mantine-color-dark-2)"},i));return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Group,{gap:1,wrap:"nowrap",children:items})}function ControlList(props){const controls=props.row.score_controls??[];if(0===controls.length)return null;return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Stack,{gap:4,children:controls.map(c=>{const style=VERDICT_STYLE[c.verdict]??VERDICT_STYLE.non_mesurable;return/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",align:"flex-start",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:style.color,fw:700,w:12,children:style.symbol}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",children:c.label}),c.detail?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",children:c.detail}):null]})]},c.key)})})}function ScoreStars(props){const{row}=props;if(null==row.score){const badge=row.score_reason?REASON_BADGES[row.score_reason]:void 0;const fallback=badge??{label:"Non not\xe9",color:"gray"};const controls=row.score_controls??[];const content=/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Badge,{size:"xs",color:fallback.color,variant:"light",children:fallback.label});if("couverture_connecteur"!==row.score_reason)return content;return/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.HoverCard,{width:300,shadow:"md",openDelay:150,withinPortal:true,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.HoverCard.Target,{children:/*#__PURE__*/(0,jsx_runtime.jsx)("span",{style:{cursor:"help"},children:content})}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.HoverCard.Dropdown,{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",fw:600,mb:6,children:"Pas assez de contr\xf4les mesurables"}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{size:"xs",c:"dimmed",mb:6,children:["Ce connecteur n’expose pas les comptes n\xe9cessaires. Une note fond\xe9e sur ",controls.filter(c=>"non_mesurable"!==c.verdict).length," ","contr\xf4le(s) sur ",MAX_STARS," ne voudrait rien dire."]}),/*#__PURE__*/(0,jsx_runtime.jsx)(ControlList,{row:row})]})]})}const stale=null!=row.refreshed_at&&null!=row.reconciliation_refresh_date&&row.refreshed_at<row.reconciliation_refresh_date;return/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.HoverCard,{width:320,shadow:"md",openDelay:150,withinPortal:true,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.HoverCard.Target,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Group,{gap:6,wrap:"nowrap",style:{cursor:"help"},children:/*#__PURE__*/(0,jsx_runtime.jsx)(Stars,{score:row.score})})}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.HoverCard.Dropdown,{children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",mb:6,wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(Stars,{score:row.score}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{size:"xs",fw:600,children:[row.score.toLocaleString("fr-FR")," / ",MAX_STARS,row.score_label?` \xb7 ${row.score_label}`:""]})]}),row.score_capped_reason?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"orange",mb:6,children:row.score_capped_reason}):null,stale?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"yellow",mb:6,children:"Chiffres repris d’un calcul ant\xe9rieur."}):null,/*#__PURE__*/(0,jsx_runtime.jsx)(ControlList,{row:row})]})]})}function scoreBucket(row){if(null==row.score)return"non_note";if(row.score>=4)return"bon";if(row.score>=3)return"moyen";return"faible"}function ManagedBadge(props){const{managed}=props;if(!managed)return null;return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Image,{src:(0,logoDev.j)("airporting.com"),alt:"G\xe9r\xe9 par Airporting",title:"G\xe9r\xe9 par Airporting",w:18,h:18,fit:"contain",radius:"sm",style:{aspectRatio:1}})}const BANK_DOMAINS=[["bnp paribas","bnpparibas.com"],["societe generale","societegenerale.com"],["qonto","qonto.com"],["revolut","revolut.com"],["stripe","stripe.com"],["wise","wise.com"],["transferwise","wise.com"],["rbc","rbcroyalbank.com"],["ibanfirst","ibanfirst.com"],["credit agricole","credit-agricole.fr"],["credit mutuel","creditmutuel.fr"],["banque populaire","banquepopulaire.fr"],["caisse d","caisse-epargne.fr"],["american express","americanexpress.com"],["amex","americanexpress.com"],["paypal","paypal.com"],["hsbc","hsbc.com"],["pennylane","pennylane.com"],["mercury","mercury.com"],["lcl","lcl.fr"],["boursorama","boursorama.com"],["bpce","bpce.fr"],["memo bank","memo.bank"],["cic","cic.fr",true],["alma","getalma.eu",true],["payplug","payplug.com"],["stancer","stancer.com"],["gocardless","gocardless.com"],["mangopay","mangopay.com"],["banque postale","labanquepostale.com"]];function matches(normalized,[needle,,wholeWord]){if(!wholeWord)return normalized.includes(needle);return` ${normalized.replace(/[^a-z0-9]+/g," ")} `.includes(` ${needle} `)}function normalize(value){return value.toLowerCase().normalize("NFD").replace(/\p{Diacritic}/gu,"")}function BankLogo(props){const{label,size=20}=props;const normalized=label?normalize(label):"";const match=BANK_DOMAINS.find(entry=>matches(normalized,entry));if(!match)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,children:"\uD83C\uDFE6"});return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Image,{src:(0,logoDev.j)(match[1]),alt:label??"",title:label??"",w:size,h:size,fit:"contain",radius:"sm",style:{aspectRatio:1}})}const reconciliationScopeKey=row=>`${row.source}:${row.dossier}`;function reconciliationDatesByScope(rows){const dates=new Map;for(const row of rows){if(row.muted)continue;const key=reconciliationScopeKey(row);const date=row.last_reconciled_period_end;if(!dates.has(key)){dates.set(key,date);continue}const previous=dates.get(key);dates.set(key,null==previous||null==date?null:previous<date?previous:date)}return dates}function reconciliationDateForLine(row,dates){const key=reconciliationScopeKey(row);return dates.has(key)?dates.get(key)??null:row.last_reconciliation_date}function balanceGap(reading){if(reading?.accounting_balance==null||null==reading.bank_balance||!Number.isFinite(reading.accounting_balance)||!Number.isFinite(reading.bank_balance))return null;const cents=Math.round((reading.accounting_balance-reading.bank_balance)*100);if(!Number.isSafeInteger(cents))return null;return 0===cents?0:cents/100}function reconciliationGapAlert(row){const reading=row.reconciled_balance_reading;if("pennylane"!==row.source||row.muted||!row.last_reconciled_period_end||!reading||reading.period_end!==row.last_reconciled_period_end||!/^\d{4}-\d{2}-\d{2}$/.test(reading.period_start)||reading.period_start>reading.period_end)return false;const gap=balanceGap(reading);return null!==gap&&0!==gap}function reconciliationGapCounts(rows){const counts=new Map;for(const row of rows){if(!reconciliationGapAlert(row))continue;const key=reconciliationScopeKey(row);counts.set(key,(counts.get(key)??0)+1)}return counts}const CURRENCY_SYMBOLS={EUR:"€",USD:"$",GBP:"\xa3"};function formatBankAmount(amount,currency){if(null===amount||!Number.isFinite(amount))return"Indisponible";const unit=currency?CURRENCY_SYMBOLS[currency]??` ${currency}`:" (devise inconnue)";const abs=Math.abs(amount);if(abs>=1e3){const value=(amount/1e3).toLocaleString("fr-FR",{maximumFractionDigits:0});return`${value} k${unit}`}const value=amount.toLocaleString("fr-FR",{maximumFractionDigits:abs>0&&abs<1?2:0});return`${value} ${unit.trim()}`}const BankBalanceDetails_date=iso=>iso.split("-").reverse().join("/");function ReconciliationGapBadge({count}){return count>0?/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Badge,{color:"red",size:"sm",ml:6,children:[count," \xe9cart",count>1?"s":""]}):null}function ReconciliationBalanceCell({row}){if("pennylane"!==row.source)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,size:"sm",c:"dimmed",children:"Non disponible pour ce connecteur"});const reading=row.reconciled_balance_reading;if(!reading)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,size:"sm",c:"dimmed",children:row.last_reconciled_period_end?"Soldes indisponibles":"Aucun rapprochement termin\xe9"});const gap=balanceGap(reading);return/*#__PURE__*/(0,jsx_runtime.jsxs)("span",{style:{display:"block",minWidth:160},children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{span:true,display:"block",size:"xs",c:"dimmed",children:[BankBalanceDetails_date(reading.period_start)," au ",BankBalanceDetails_date(reading.period_end)]}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{span:true,display:"block",size:"sm",children:["Compta :"," ",formatBankAmount(reading.accounting_balance,reading.currency)]}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{span:true,display:"block",size:"sm",children:["Banque : ",formatBankAmount(reading.bank_balance,reading.currency)]}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{span:true,display:"block",size:"sm",fw:700,c:null===gap?"dimmed":0!==gap?"red":"teal",children:["\xc9cart : ",formatBankAmount(gap,reading.currency),reconciliationGapAlert(row)&&/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Badge,{color:"red",size:"xs",ml:6,children:"\xc0 v\xe9rifier"})]})]})}var CompanyLogo=__webpack_require__(3437);var LoadingProgress=__webpack_require__(9488);var useAppConfig=__webpack_require__(7936);var PageHeader=__webpack_require__(1354);const categories=new Set(["471","58","supplier","customer","factor","provision_cp","reconciliation","supplier_invoices_accounting","supplier_invoices_management"]);function readDrillFromUrl(url){const dossier=url.searchParams.get("dossier")?.trim();const source=url.searchParams.get("source")?.trim();const drill=url.searchParams.get("drill");if(!dossier||!source||!drill)return null;if("all"!==drill&&!categories.has(drill))return null;return{dossier,source,category:"all"===drill?null:drill}}function urlWithDrill(url,selection){const next=new URL(url);if(selection){next.searchParams.set("dossier",selection.dossier);next.searchParams.set("source",selection.source);next.searchParams.set("drill",selection.category??"all")}else{next.searchParams.delete("dossier");next.searchParams.delete("source");next.searchParams.delete("drill")}return next}const HEADER_HIDDEN_KEY="accounting:header-hidden";function readHeaderHidden(){try{return"1"===window.localStorage.getItem(HEADER_HIDDEN_KEY)}catch{return false}}function writeHeaderHidden(hidden){try{window.localStorage.setItem(HEADER_HIDDEN_KEY,hidden?"1":"0")}catch{}}const recoAccountLabel=row=>{const account=(row.account_name??"").trim();const bank=(row.bank_label??"").trim();if(""!==account&&""!==bank&&account!==bank)return`${bank} : ${account}`;return""!==account?account:""!==bank?bank:"Banque"};const muteKey=(companyId,accountId)=>`${companyId}:${accountId}`;function drillCategoryLabel(category){if("471"===category)return"D\xe9tail 471";if("58"===category)return"D\xe9tail 58";if("supplier"===category)return"Fournisseurs d\xe9biteurs 401";if("customer"===category)return"Clients cr\xe9diteurs 411";if("factor"===category)return"Cr\xe9ances c\xe9d\xe9es au factor 4116";if("provision_cp"===category)return"Provision CP 4282 + 4382";if("reconciliation"===category)return"Rappros bancaires";if("supplier_invoices_accounting"===category)return"Factures fournisseurs \xe0 traiter (compta)";if("supplier_invoices_management"===category)return"Factures fournisseurs \xe0 traiter (gestion)";return null}function provisionCpMobileText(row){const p=row.provision_cp;if(null==p||"non_mesurable"===p.status)return"—";if("en_retard"===p.status)return"non saisie";if("saisie"===p.status)return`saisie le ${formatDate(p.window_entry_date)}`;return`\xe9ch\xe9ance le ${formatDate(p.deadline)}`}function provisionCpHint(p){if("en_retard"===p.status)return`Aucune \xe9criture significative depuis la cl\xf4ture du ${formatDate(p.closing_date)}. La provision doit \xeatre repass\xe9e.`;if("saisie"===p.status)return`Provision repass\xe9e le ${formatDate(p.window_entry_date)} (cl\xf4ture du ${formatDate(p.closing_date)}).`;if("a_saisir"===p.status)return`Cl\xf4ture du ${formatDate(p.closing_date)} : provision \xe0 saisir avant le ${formatDate(p.deadline)}.`;return"\xc9critures significatives (hors \xe0-nouveau) sur les comptes d\xe9di\xe9s."}function pennylaneSupplierInvoicesUrl(row,space){if("pennylane"!==row.source||null==row.pennylane_company_id)return null;const base=`https://app.pennylane.com/companies/${row.pennylane_company_id}`;if("compta"===space){const filter=encodeURIComponent(JSON.stringify([{field:"status",operator:"in_scopes",value:["entry","validation_needed"]}]));return`${base}/accountants/supplier_invoices?filter=${filter}`}const filter=encodeURIComponent(JSON.stringify([{field:"status",operator:"in_scopes",value:"inbox_tab"}]));return`${base}/supplier_invoices?filter=${filter}`}function syncBadge(isoDate){if(!isoDate)return null;const days=Math.floor((Date.now()-new Date(isoDate).getTime())/864e5);let color="green";if(days>10)color="red";else if(days>4)color="orange";return/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Badge,{ml:6,size:"xs",color:color,variant:"light",children:[days,"j"]})}function isStaleRefresh(refreshedAt,computedAt){if(!refreshedAt)return false;const refreshedDay=refreshedAt.slice(0,10);const referenceDay=(computedAt??new Date().toISOString()).slice(0,10);return refreshedDay<referenceDay}function refreshKoBadge(refreshedAt,computedAt){if(!isStaleRefresh(refreshedAt,computedAt))return null;return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tooltip,{label:`Chiffres du ${formatDate(refreshedAt?.slice(0,10))} \u{2014} refresh KO ce run`,children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Badge,{ml:6,size:"xs",color:"yellow",variant:"light",children:"refresh KO"})})}function vatPennylaneStatusText(c){if(null==c.declared_in_pennylane)return"non lu";if(c.declared_in_pennylane)return c.pennylane?.last_sent_at&&c.pennylane.last_sent_period_end===c.control_date?`envoy\xe9e le ${formatDate(c.pennylane.last_sent_at)}`:"envoy\xe9e";const status=c.pennylane?.control_period_status;if("in_progress"===status)return"en cours, pas envoy\xe9e";return status?status:"absente de Pennylane"}function vatFiscalText(p){if(!p)return null;const parts=[];if(p.fiscal_regime)parts.push(p.fiscal_regime.replace(/^fr_/,"").toUpperCase());if(p.fiscal_category)parts.push(p.fiscal_category.replace("_"," ").toUpperCase());if(p.one_stop_shop)parts.push("OSS");if(p.cash_based_accounting)parts.push("tr\xe9sorerie");return parts.length>0?parts.join(" \xb7 "):null}function vatControlOf(row){return row.vat_control??null}function vatRegimeLabel(regime){switch(regime){case"encaissement":return"Encaissement";case"debit":return"D\xe9bits";case"mixte":return"Mixte";default:return"—"}}function vatPeriodicityLabel(periodicity){switch(periodicity){case"trimestriel":return"trimestrielle";case"annuel":return"annuelle";default:return"mensuelle"}}function vatStatusColor(status){if("vert"===status)return"green";if("orange"===status)return"orange";if("rouge"===status)return"red"}const VAT_REGIME_HINT="R\xe9gime de TVA d\xe9duit du grand livre Pennylane : part de la TVA collect\xe9e factur\xe9e sur 12 mois qui passe par le 44574 (TVA sur encaissements). Encaissement au-dessus de 95 %, d\xe9bits en dessous de 5 %, mixte entre les deux. Survolez pour la p\xe9riodicit\xe9 et le jour limite (param\xe8tres Pennylane), la date de contr\xf4le, la derni\xe8re d\xe9claration comptabilis\xe9e et la CA3 de la p\xe9riode telle que Pennylane la conna\xeet.";const VAT_SALES_HINT="TVA collect\xe9e en compte (4457, exigible + en attente) moins la TVA que justifie l’encours clients 411 + 416, \xe0 la fin de la derni\xe8re p\xe9riode dont l’\xe9ch\xe9ance de d\xe9claration est pass\xe9e. Encaissement : encours TTC \xd7 part de TVA en attente du factur\xe9 (1/6 \xe0 20 %). D\xe9bits : rien ne doit rester apr\xe8s la d\xe9claration. Positif = TVA en compte non d\xe9clar\xe9e. Vert sous 100 € ou 1 %, orange sous 1 000 € ou 5 %, rouge au-del\xe0. Pennylane seulement.";const VAT_PURCHASES_HINT="TVA d\xe9ductible en compte (4456, exigible + en attente) moins la TVA que justifie l’encours fournisseurs 401, m\xeame date et m\xeame m\xe9thode que les ventes : la part de TVA en attente (44564) du TTC factur\xe9 sur 12 mois suit le r\xe9gime de chaque fournisseur. Pennylane seulement.";function VatRegimeCell(props){const c=props.control;if(null===c)return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:"—"});return/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.HoverCard,{withArrow:true,shadow:"md",openDelay:120,position:"bottom-start",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.HoverCard.Target,{children:/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{span:true,inherit:true,style:{cursor:"default"},children:[vatRegimeLabel(c.regime),!c.declaration_booked&&/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tooltip,{label:`Aucune \xe9criture de d\xe9claration comptabilis\xe9e au ${formatDate(c.control_date)}`,children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Badge,{ml:6,size:"xs",color:"red",variant:"light",children:"d\xe9cl. KO"})})]})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.HoverCard.Dropdown,{children:/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Stack,{gap:4,children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",gap:"lg",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",children:"Part en attente (44574)"}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{size:"xs",children:[Math.round(100*c.regime_share)," %"]})]}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",gap:"lg",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",children:"D\xe9claration"}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{size:"xs",children:[vatPeriodicityLabel(c.periodicity),null!=c.declaration_day?`, le ${c.declaration_day}`:"","pennylane"===c.periodicity_source?" (Pennylane)":" (d\xe9duite du grand livre)"]})]}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",gap:"lg",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",children:"Contr\xf4le au"}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",children:formatDate(c.control_date)})]}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",gap:"lg",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",children:"Derni\xe8re d\xe9claration comptabilis\xe9e"}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:c.declaration_booked?void 0:"red",children:c.last_declaration_date?formatDate(c.last_declaration_date):"aucune"})]}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",gap:"lg",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",children:"CA3 de la p\xe9riode dans Pennylane"}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:false===c.declared_in_pennylane?"red":void 0,children:vatPennylaneStatusText(c)})]}),vatFiscalText(c.pennylane)&&/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",gap:"lg",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",children:"R\xe9gime fiscal Pennylane"}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",children:vatFiscalText(c.pennylane)})]})]})})]})}function VatGapCell(props){const c=props.control;if(null===c)return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:"—"});const g="sales"===props.side?c.sales:c.purchases;if("non_mesurable"===g.status)return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:"—"});const labels="sales"===props.side?{due:"TVA collect\xe9e exigible (4457 hors 44574)",pending:"TVA collect\xe9e en attente (44574)",outstanding:"Encours clients TTC (411 + 416)"}:{due:"TVA d\xe9ductible exigible (4456 hors 44564)",pending:"TVA d\xe9ductible en attente (44564)",outstanding:"Encours fournisseurs TTC (401)"};const rows=[{label:"Contr\xf4le au",value:formatDate(c.control_date)},{label:labels.due,value:formatCurrency(g.due,props.currency)},{label:labels.pending,value:formatCurrency(g.pending,props.currency)},{label:labels.outstanding,value:formatCurrency(g.outstanding,props.currency)},{label:"Part de TVA en attente du TTC factur\xe9 (12 mois)",value:`${(100*g.pending_ratio).toFixed(2)} %`},{label:"TVA en attente attendue (encours \xd7 part)",value:formatCurrency(g.expected_pending,props.currency)},{label:"\xc9cart",value:formatCurrency(g.gap,props.currency)}];return/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.HoverCard,{withArrow:true,shadow:"md",openDelay:120,position:"bottom-end",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.HoverCard.Target,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,inherit:true,fw:"rouge"===g.status?700:void 0,c:vatStatusColor(g.status),style:{cursor:"default"},children:formatKeur(g.gap,props.currency)})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.HoverCard.Dropdown,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Stack,{gap:4,children:rows.map(r=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",gap:"lg",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",children:r.label}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",children:r.value})]},r.label))})})]})}function factorKeur(row){const v=row.total_factor_eur??0;return 0===v?"—":formatKeur(v,row.currency)}function withDossierFilter(rows,dossier){if(!dossier)return rows;return rows.filter(r=>r.dossier===dossier)}function withManagedFilter(rows,managedOnly){if(!managedOnly)return rows;return rows.filter(r=>true===r.managed)}const NO_RESPONSABLE="__none__";function withResponsableFilter(rows,responsable){if(!responsable)return rows;if(responsable===NO_RESPONSABLE)return rows.filter(r=>null==r.responsable);return rows.filter(r=>String(r.responsable?.id)===responsable)}function withScoreFilter(rows,bucket){if("all"===bucket)return rows;return rows.filter(r=>scoreBucket(r)===bucket)}function formatCurrency(value,currency){if(null==value)return"—";try{return value.toLocaleString("fr-FR",{style:"currency",currency:currency||"EUR",minimumFractionDigits:0,maximumFractionDigits:0})}catch{return`${Math.round(value).toLocaleString("fr-FR")} ${currency}`}}function formatNumber(value){if(null==value)return"—";return value.toLocaleString("fr-FR")}function formatDate(value){if(!value)return"—";return value.split("-").reverse().join("/")}function currencySymbol(code){const currency=code||"EUR";try{const parts=new Intl.NumberFormat("fr-FR",{style:"currency",currency}).formatToParts(0);return parts.find(part=>"currency"===part.type)?.value??currency}catch{return currency}}function formatKeur(value,currency){if(null==value)return"—";const keur=Math.round(value/1e3)||0;if(0===keur&&0!==value)return`${Math.round(value).toLocaleString("fr-FR")} ${currencySymbol(currency)}`;return`${keur.toLocaleString("fr-FR")} k${currencySymbol(currency)}`}function sumBy(rows,pick){return rows.reduce((acc,row)=>acc+(pick(row)??0),0)}function DrillSectionTitle(props){const isSample=null!=props.total&&props.count>0&&Math.abs(props.visibleSum-props.total)>.5;return/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Title,{order:5,mb:6,children:[props.label," (",props.count,isSample?" affich\xe9s":"",")",null!=props.total?` \xb7 total ${formatCurrency(props.total,props.currency)}`:""]})}function ClickableMetricValue(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,inherit:true,style:{cursor:"pointer",display:"block",width:"100%"},onClick:e=>{e.stopPropagation();props.onClick()},children:props.value})}function updateDateParts(row){return[{label:"Derni\xe8re \xe9criture",iso:row.last_entry_date},{label:"Dernier import GLA",iso:row.gla_last_sync_date?.slice(0,10)??null},{label:"Rappros / factures",iso:row.reconciliation_refresh_date?.slice(0,10)??null}]}function oldestUpdateDate(parts){const present=parts.map(p=>p.iso).filter(v=>null!=v);if(0===present.length)return null;return present.reduce((a,b)=>a<b?a:b)}function UpdateDateCell(props){const parts=updateDateParts(props.row);const oldest=oldestUpdateDate(parts);if(null==oldest)return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:"—"});return/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.HoverCard,{withArrow:true,shadow:"md",openDelay:120,position:"bottom-start",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.HoverCard.Target,{children:/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{span:true,inherit:true,style:{cursor:"default"},children:[formatDate(oldest),syncBadge(oldest),refreshKoBadge(props.row.refreshed_at,props.computedAt),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,c:"dimmed",children:" ▾"})]})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.HoverCard.Dropdown,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Stack,{gap:4,children:parts.map(p=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",gap:"lg",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",children:p.label}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",children:p.iso?formatDate(p.iso):"—"})]},p.label))})})]})}function clickableCardStyle(clickable){return clickable?{cursor:"pointer"}:void 0}function MobileMetricGrid({metrics}){return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.SimpleGrid,{cols:2,spacing:"xs",children:metrics.map(metric=>/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{cursor:metric.onClick?"pointer":void 0,gridColumn:metric.wide?"1 / -1":void 0},onClick:metric.onClick?event=>{event.stopPropagation();metric.onClick?.()}:void 0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",children:metric.label}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"sm",fw:700,c:metric.color,lineClamp:metric.wide?void 0:2,children:metric.value})]},metric.label))})}function MobileAccountingList(props){const{rows,emptyLabel="Aucune ligne",getKey,renderHeader,getMetrics,onRowClick}=props;if(0===rows.length)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{c:"dimmed",ta:"center",py:"xl",children:emptyLabel});return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Stack,{gap:"sm",children:rows.map((row,index)=>/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Card,{withBorder:true,p:"sm",radius:"md",onClick:onRowClick?()=>onRowClick(row):void 0,style:clickableCardStyle(!!onRowClick),children:/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Stack,{gap:"sm",children:[renderHeader(row),/*#__PURE__*/(0,jsx_runtime.jsx)(MobileMetricGrid,{metrics:getMetrics(row)})]})},getKey(row,index)))})}function MobileDossierLineList(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(MobileAccountingList,{rows:props.rows,getKey:row=>`${row.source}:${row.dossier}`,renderHeader:row=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"flex-start",gap:"sm",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",align:"center",wrap:"nowrap",miw:0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:row.source}),/*#__PURE__*/(0,jsx_runtime.jsx)(CompanyLogo.D,{slug:row.slug,updatedAt:row.logo_updated_at,size:24}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{minWidth:0},children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{fw:700,size:"sm",lineClamp:1,children:row.dossier}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:6,wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:row.managed}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",lineClamp:1,children:row.responsable?.name??"Sans responsable"})]})]})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(ScoreStars,{row:row})]}),getMetrics:row=>[{label:"471",value:/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:formatKeur(row.solde_attente_eur,row.currency),onClick:()=>props.onDrill(row,"471")})},{label:"58",value:/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:formatKeur(row.solde_virements_eur,row.currency),onClick:()=>props.onDrill(row,"58")})},{label:"401",value:/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:formatKeur(row.total_fournisseurs_eur,row.currency),onClick:()=>props.onDrill(row,"supplier")})},{label:"411",value:/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:formatKeur(row.total_clients_eur,row.currency),onClick:()=>props.onDrill(row,"customer")})},{label:"Cr\xe9ances c\xe9d\xe9es",value:/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:factorKeur(row),onClick:()=>props.onDrill(row,"factor")})},{label:"Date mise \xe0 jour",value:(()=>{const oldest=oldestUpdateDate(updateDateParts(row));if(null==oldest)return"—";return/*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[formatDate(oldest),syncBadge(oldest),refreshKoBadge(row.refreshed_at,props.computedAt)]})})()},{label:"Rappro",...(()=>{const hasActiveReco=props.activeRecoScopes.has(reconciliationScopeKey(row));const lastReconciliationDate=reconciliationDateForLine(row,props.reconciliationDates);const text=null!=lastReconciliationDate?formatDate(lastReconciliationDate):hasActiveReco?"jamais":"—";return{value:/*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[text,/*#__PURE__*/(0,jsx_runtime.jsx)(ReconciliationGapBadge,{count:props.reconciliationGaps.get(reconciliationScopeKey(row))??0})]}),onClick:"—"===text?void 0:()=>props.onDrill(row,"reconciliation")}})(),color:null==reconciliationDateForLine(row,props.reconciliationDates)&&props.activeRecoScopes.has(reconciliationScopeKey(row))?"red":void 0},{label:"Factures fournisseurs \xe0 traiter (compta)",value:null!=row.pending_supplier_invoices?formatNumber(row.pending_supplier_invoices):"—",onClick:"pennylane"===row.source&&null!=row.pending_supplier_invoices?()=>props.onDrill(row,"supplier_invoices_accounting"):void 0},{label:"Factures fournisseurs \xe0 traiter (gestion)",value:"pennylane"===row.source?formatNumber(row.management_supplier_invoices_inbox):"—",onClick:"pennylane"===row.source&&null!=row.management_supplier_invoices_inbox?()=>props.onDrill(row,"supplier_invoices_management"):void 0},{label:"Provision CP",value:provisionCpMobileText(row),color:row.provision_cp?.status==="en_retard"?"red":void 0,onClick:null!=row.provision_cp&&"non_mesurable"!==row.provision_cp.status?()=>props.onDrill(row,"provision_cp"):void 0},{label:"R\xe9gime TVA",value:/*#__PURE__*/(0,jsx_runtime.jsx)(VatRegimeCell,{control:vatControlOf(row)})},{label:"\xc9cart TVA ventes",value:/*#__PURE__*/(0,jsx_runtime.jsx)(VatGapCell,{control:vatControlOf(row),side:"sales",currency:row.currency})},{label:"\xc9cart TVA achats",value:/*#__PURE__*/(0,jsx_runtime.jsx)(VatGapCell,{control:vatControlOf(row),side:"purchases",currency:row.currency})}]})}function MobileSuspenseList(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(MobileAccountingList,{rows:props.rows,onRowClick:props.onRowClick,getKey:(row,index)=>`${row.dossier}:${row.date}:${row.numero_piece??index}`,renderHeader:row=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"flex-start",gap:"sm",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",miw:0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:row.source}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{minWidth:0},children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{fw:700,size:"sm",lineClamp:1,children:row.dossier}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",lineClamp:2,children:row.libelle_ecriture??row.libelle_compte??"Sans libell\xe9"})]})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:row.managed})]}),getMetrics:row=>[{label:"Solde net",value:formatCurrency(row.solde_net)},{label:"Date",value:formatDate(row.date)},{label:"Compte",value:row.numero_compte??"—"},{label:"Pi\xe8ce",value:row.numero_piece??"—"}]})}function MobileSupplierList(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(MobileAccountingList,{rows:props.rows,onRowClick:props.onRowClick,getKey:(row,index)=>`${row.dossier}:${row.fournisseur}:${index}`,renderHeader:row=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"flex-start",gap:"sm",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",miw:0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:row.source}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{minWidth:0},children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{fw:700,size:"sm",lineClamp:1,children:row.fournisseur}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",lineClamp:1,children:row.dossier})]})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:row.managed})]}),getMetrics:row=>[{label:"Solde d\xe9biteur",value:formatCurrency(row.solde_debiteur_eur)},{label:"\xc9critures",value:formatNumber(row.nb_ecritures)},{label:"Devise",value:row.devise||"—"}]})}function MobileCustomerList(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(MobileAccountingList,{rows:props.rows,onRowClick:props.onRowClick,getKey:(row,index)=>`${row.dossier}:${row.client}:${index}`,renderHeader:row=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"flex-start",gap:"sm",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",miw:0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:row.source}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{minWidth:0},children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{fw:700,size:"sm",lineClamp:1,children:row.client}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",lineClamp:1,children:row.dossier})]})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:row.managed})]}),getMetrics:row=>[{label:"Solde cr\xe9diteur",value:formatCurrency(row.solde_crediteur_eur)},{label:"\xc9critures",value:formatNumber(row.nb_ecritures)},{label:"Devise",value:row.devise||"—"}]})}function MobileProvisionList(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(MobileAccountingList,{rows:props.rows,getKey:(row,index)=>`${row.date}:${row.account}:${index}`,renderHeader:row=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"flex-start",gap:"sm",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{minWidth:0},children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{fw:700,size:"sm",lineClamp:1,children:formatDate(row.date)}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",lineClamp:2,children:row.label||row.account_label||row.account})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"sm",fw:700,lineClamp:1,children:formatCurrency(Math.max(row.debit,row.credit))})]}),getMetrics:row=>[{label:"Compte",value:row.account},{label:"Journal",value:row.journal_label??row.journal_code??"—"},{label:"D\xe9bit",value:formatCurrency(row.debit)},{label:"Cr\xe9dit",value:formatCurrency(row.credit)}]})}function MobilePendingInvoiceList(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(MobileAccountingList,{rows:props.rows,getKey:row=>String(row.id),renderHeader:row=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",gap:"sm",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"sm",fw:700,lineClamp:2,children:row.label}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"sm",fw:700,children:formatCurrency(row.amount,row.currency)})]}),getMetrics:row=>[{label:"Date",value:formatDate(row.date)},{label:"N\xb0",value:row.invoice_number??"-"},{label:"Statut",value:row.status??"-"}]})}function PendingInvoiceDrill(props){const url=props.line?pennylaneSupplierInvoicesUrl(props.line,props.space):null;return/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"center",mb:6,children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Title,{order:5,children:[props.title," (",props.count??"-",")"]}),url&&/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Button,{component:"a",href:url,target:"_blank",rel:"noopener noreferrer",size:"xs",variant:"subtle",children:"Ouvrir dans Pennylane"})]}),null===props.rows?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"sm",c:"dimmed",children:"D\xe9tail disponible apr\xe8s la prochaine synchronisation."}):/*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",mb:6,children:"Jusqu'\xe0 10 factures, les plus anciennes d'abord."}),props.isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobilePendingInvoiceList,{rows:props.rows}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:DRILL_PENDING_INVOICE_COLS,rows:props.rows})]})]})}function MobileReconciliationList({rows,onToggleMute}){return/*#__PURE__*/(0,jsx_runtime.jsx)(MobileAccountingList,{rows:rows,getKey:row=>`${row.airporting_company_id}:${row.account_id}`,renderHeader:row=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"center",gap:"sm",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",miw:0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(BankLogo,{label:row.bank_label||row.account_name,size:24}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{fw:700,size:"sm",lineClamp:1,c:row.muted?"dimmed":void 0,children:recoAccountLabel(row)})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Switch,{size:"sm",checked:!row.muted,label:row.muted?"non suivi":"suivi",onLabel:"suivi",onChange:e=>onToggleMute({company_id:row.airporting_company_id,account_id:row.account_id,muted:!e.currentTarget.checked})})]}),getMetrics:row=>[{label:"Soldes du dernier rapprochement termin\xe9",value:/*#__PURE__*/(0,jsx_runtime.jsx)(ReconciliationBalanceCell,{row:row}),wide:true},{label:"Dernier rappro",value:row.muted?"non suivi":row.last_reconciled_period_end?formatDate(row.last_reconciled_period_end):"jamais",color:row.muted?"dimmed":row.last_reconciled_period_end?void 0:"red"},{label:"Derni\xe8re op\xe9ration",value:row.last_movement_date?formatDate(row.last_movement_date):"—"},{label:"\xc0 rapprocher depuis",value:row.muted?"non suivi":row.unreconciled_since?formatDate(row.unreconciled_since):row.last_movement_date?"rien \xe0 rapprocher":"—",color:!row.muted&&null==row.unreconciled_since&&row.last_movement_date?"teal":void 0}]})}function MobileTopSuspenseList(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(MobileAccountingList,{rows:props.rows,onRowClick:props.onRowClick,getKey:row=>`471:${row.rank}:${row.dossier}`,renderHeader:row=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"flex-start",gap:"sm",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",miw:0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:row.source}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{minWidth:0},children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{fw:700,size:"sm",lineClamp:1,children:["#",row.rank," ",row.dossier]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",lineClamp:1,children:row.top_libelle??"Sans libell\xe9"})]})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:row.managed})]}),getMetrics:row=>[{label:"Solde 471",value:formatCurrency(row.solde_eur)},{label:"\xc9critures",value:formatNumber(row.nb_ecritures)},{label:"Top montant",value:formatCurrency(row.top_montant)}]})}function MobileTopSupplierList(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(MobileAccountingList,{rows:props.rows,onRowClick:props.onRowClick,getKey:row=>`401:${row.rank}:${row.dossier}`,renderHeader:row=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"flex-start",gap:"sm",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",miw:0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:row.source}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{minWidth:0},children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{fw:700,size:"sm",lineClamp:1,children:["#",row.rank," ",row.dossier]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",lineClamp:1,children:row.top_nom??"Sans fournisseur"})]})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:row.managed})]}),getMetrics:row=>[{label:"Total d\xe9biteur",value:formatCurrency(row.total_eur)},{label:"Fournisseurs",value:formatNumber(row.nb_fournisseurs)},{label:"Top montant",value:formatCurrency(row.top_montant)}]})}function MobileTopCustomerList(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(MobileAccountingList,{rows:props.rows,onRowClick:props.onRowClick,getKey:row=>`411:${row.rank}:${row.dossier}`,renderHeader:row=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"flex-start",gap:"sm",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",miw:0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:row.source}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{minWidth:0},children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Text,{fw:700,size:"sm",lineClamp:1,children:["#",row.rank," ",row.dossier]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",lineClamp:1,children:row.top_nom??"Sans client"})]})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:row.managed})]}),getMetrics:row=>[{label:"Total cr\xe9diteur",value:formatCurrency(row.total_eur)},{label:"Clients",value:formatNumber(row.nb_clients)},{label:"Top montant",value:formatCurrency(row.top_montant)}]})}function EtatSaisieApp(){const{consoleLoading}=(0,useAppConfig.M)();const isMobile=(0,esm_index_mjs_.useMediaQuery)("(max-width: 48em)",false);const latest=useEtatSaisieLatest();const recompute=useEtatSaisieRecompute();const saveReconciliationMutes=useSaveReconciliationMutes();const[muteDraft,setMuteDraft]=(0,consume_shared_module_default_react_strict_.useState)(new Map);const[tab,setTab]=(0,consume_shared_module_default_react_strict_.useState)("resume");const[selectedDossier,setSelectedDossier]=(0,consume_shared_module_default_react_strict_.useState)(null);const[managedOnly,setManagedOnly]=(0,consume_shared_module_default_react_strict_.useState)(true);const[statusFilter,setStatusFilter]=(0,consume_shared_module_default_react_strict_.useState)("all");const[selectedResponsable,setSelectedResponsable]=(0,consume_shared_module_default_react_strict_.useState)(null);const[headerHidden,setHeaderHidden]=(0,consume_shared_module_default_react_strict_.useState)(readHeaderHidden);(0,consume_shared_module_default_react_strict_.useEffect)(()=>writeHeaderHidden(headerHidden),[headerHidden]);const activeFilterCount=(selectedDossier?1:0)+(selectedResponsable?1:0)+("all"!==statusFilter?1:0)+(managedOnly?0:1);const[drill,setDrill]=(0,consume_shared_module_default_react_strict_.useState)(()=>"undefined"==typeof window?null:readDrillFromUrl(new URL(window.location.href)));const drillDossier=drill?.dossier??null;const drillProvider=drill?.source??null;const drillCategory=drill?.category??null;const d=latest.data;(0,consume_shared_module_default_react_strict_.useEffect)(()=>{const syncDrillFromUrl=()=>{setDrill(readDrillFromUrl(new URL(window.location.href)));setMuteDraft(new Map)};window.addEventListener("popstate",syncDrillFromUrl);return()=>window.removeEventListener("popstate",syncDrillFromUrl)},[]);const allDossiers=(0,consume_shared_module_default_react_strict_.useMemo)(()=>{if(!d?.available)return[];const set=new Set;for(const r of d.suspense_rows??[])set.add(r.dossier);for(const r of d.supplier_rows??[])set.add(r.dossier);for(const r of d.customer_rows??[])set.add(r.dossier);for(const r of d.dossier_lines??[])set.add(r.dossier);for(const r of d.reconciliation_rows??[])set.add(r.dossier);for(const r of d.summary?.top_5_suspense??[])set.add(r.dossier);for(const r of d.summary?.top_5_supplier_debtors??[])set.add(r.dossier);for(const r of d.summary?.top_5_customer_creditors??[])set.add(r.dossier);return[...set].sort()},[d]);const responsableOptions=(0,consume_shared_module_default_react_strict_.useMemo)(()=>{const byId=new Map;let hasNone=false;for(const line of d?.dossier_lines??[])if(line.responsable)byId.set(line.responsable.id,line.responsable.name);else hasNone=true;const options=[...byId.entries()].map(([id,name])=>({value:String(id),label:name})).sort((a,b)=>a.label.localeCompare(b.label));if(hasNone)options.push({value:NO_RESPONSABLE,label:"Sans responsable"});return options},[d]);const reconciliationDates=(0,consume_shared_module_default_react_strict_.useMemo)(()=>reconciliationDatesByScope(d?.reconciliation_rows??[]),[d?.reconciliation_rows]);const activeRecoScopes=(0,consume_shared_module_default_react_strict_.useMemo)(()=>new Set(reconciliationDates.keys()),[reconciliationDates]);const reconciliationGaps=(0,consume_shared_module_default_react_strict_.useMemo)(()=>reconciliationGapCounts(d?.reconciliation_rows??[]),[d?.reconciliation_rows]);const openDrill=(0,consume_shared_module_default_react_strict_.useCallback)((row,category=null)=>{const selection={dossier:row.dossier,source:row.source,category};setDrill(selection);window.history.pushState(window.history.state,"",urlWithDrill(new URL(window.location.href),selection))},[]);const closeDrill=(0,consume_shared_module_default_react_strict_.useCallback)(()=>{setDrill(null);window.history.replaceState(window.history.state,"",urlWithDrill(new URL(window.location.href),null));setMuteDraft(new Map)},[]);const filterResponsable=(0,consume_shared_module_default_react_strict_.useCallback)(row=>{const id=row.responsable?String(row.responsable.id):NO_RESPONSABLE;setSelectedDossier(null);setManagedOnly(true);setStatusFilter("all");setSelectedResponsable(current=>current===id?null:id)},[]);const unifiedCols=(0,consume_shared_module_default_react_strict_.useMemo)(()=>buildUnifiedCols(d?.computed_at,openDrill,filterResponsable,activeRecoScopes,reconciliationDates,reconciliationGaps),[d?.computed_at,openDrill,filterResponsable,activeRecoScopes,reconciliationDates,reconciliationGaps]);const drillData=(0,consume_shared_module_default_react_strict_.useMemo)(()=>{if(!drillDossier||!d?.available)return null;const scoped=rows=>(rows??[]).filter(r=>r.dossier===drillDossier&&r.source===drillProvider);const reconciliation=scoped(d.reconciliation_rows).sort((a,b)=>{const av=a.last_reconciled_period_end??"0000-00-00";const bv=b.last_reconciled_period_end??"0000-00-00";return av.localeCompare(bv)});const lines=(d.dossier_lines??[]).filter(l=>l.dossier===drillDossier&&l.source===drillProvider);const sumLines=pick=>lines.reduce((acc,l)=>acc+(pick(l)??0),0);return{reconciliation,suspense:scoped(d.suspense_rows),internalTransfers:scoped(d.internal_transfer_rows),supplier:scoped(d.supplier_rows),customer:scoped(d.customer_rows),factor:scoped(d.factor_rows??[]),pendingInvoicesAccounting:lines[0]?.pending_supplier_invoices_top??null,pendingInvoicesManagement:lines[0]?.management_supplier_invoices_inbox_top??null,pendingInvoicesAccountingCount:lines[0]?.pending_supplier_invoices??null,pendingInvoicesManagementCount:lines[0]?.management_supplier_invoices_inbox??null,invoiceLine:lines[0]??null,provisionCp:lines[0]?.provision_cp??null,currency:lines[0]?.currency??null,totals:{suspense:sumLines(l=>l.solde_attente_eur),internalTransfers:sumLines(l=>l.solde_virements_eur),supplier:sumLines(l=>l.total_fournisseurs_eur),customer:sumLines(l=>l.total_clients_eur),factor:sumLines(l=>l.total_factor_eur??0)}}},[drillDossier,drillProvider,d]);const provisionDrillEntries=drillData?.provisionCp?.recent_entries??drillData?.provisionCp?.entries??[];const reconciliationRows=(0,consume_shared_module_default_react_strict_.useMemo)(()=>{const rows=drillData?.reconciliation??[];if(0===muteDraft.size)return rows;return rows.map(row=>{const draft=muteDraft.get(muteKey(row.airporting_company_id,row.account_id));return void 0===draft?row:{...row,muted:draft}})},[drillData,muteDraft]);const onToggleMute=(0,consume_shared_module_default_react_strict_.useCallback)(({company_id,account_id,muted})=>{setMuteDraft(current=>{const next=new Map(current);const key=muteKey(company_id,account_id);const server=(drillData?.reconciliation??[]).find(row=>row.airporting_company_id===company_id&&row.account_id===account_id);if(server&&server.muted===muted)next.delete(key);else next.set(key,muted);return next})},[drillData]);const drillRecoCols=(0,consume_shared_module_default_react_strict_.useMemo)(()=>buildDrillRecoCols(onToggleMute),[onToggleMute]);const pendingMutes=(0,consume_shared_module_default_react_strict_.useMemo)(()=>{const changes=[];for(const[key,muted]of muteDraft){const[companyId,accountId]=key.split(":");changes.push({company_id:Number(companyId),account_id:Number(accountId),muted})}return changes},[muteDraft]);const summaryRows=(0,consume_shared_module_default_react_strict_.useMemo)(()=>withScoreFilter(withResponsableFilter(withManagedFilter(withDossierFilter(d?.dossier_lines??[],selectedDossier),managedOnly),selectedResponsable),statusFilter),[d,selectedDossier,managedOnly,selectedResponsable,statusFilter]);const scoreTiles=(0,consume_shared_module_default_react_strict_.useMemo)(()=>{const base=withResponsableFilter(withManagedFilter(withDossierFilter(d?.dossier_lines??[],selectedDossier),managedOnly),selectedResponsable);const count=bucket=>base.filter(r=>scoreBucket(r)===bucket).length;return[{key:"all",label:"Dossiers",value:base.length,color:void 0},{key:"bon",label:"4 \xe0 5 \xe9toiles",value:count("bon"),color:"green"},{key:"moyen",label:"3 \xe9toiles",value:count("moyen"),color:"yellow"},{key:"faible",label:"1 \xe0 2 \xe9toiles",value:count("faible"),color:"red"},{key:"non_note",label:"Non not\xe9s",value:count("non_note"),color:"gray"}]},[d,selectedDossier,managedOnly,selectedResponsable]);const topSuspenseRows=(0,consume_shared_module_default_react_strict_.useMemo)(()=>withDossierFilter(d?.summary?.top_5_suspense??[],selectedDossier),[d,selectedDossier]);const topSupplierRows=(0,consume_shared_module_default_react_strict_.useMemo)(()=>withDossierFilter(d?.summary?.top_5_supplier_debtors??[],selectedDossier),[d,selectedDossier]);const topCustomerRows=(0,consume_shared_module_default_react_strict_.useMemo)(()=>withDossierFilter(d?.summary?.top_5_customer_creditors??[],selectedDossier),[d,selectedDossier]);const suspenseRows=(0,consume_shared_module_default_react_strict_.useMemo)(()=>withManagedFilter(withDossierFilter(d?.suspense_rows??[],selectedDossier),managedOnly),[d,selectedDossier,managedOnly]);const internalTransferRows=(0,consume_shared_module_default_react_strict_.useMemo)(()=>withManagedFilter(withDossierFilter(d?.internal_transfer_rows??[],selectedDossier),managedOnly),[d,selectedDossier,managedOnly]);const supplierRows=(0,consume_shared_module_default_react_strict_.useMemo)(()=>withManagedFilter(withDossierFilter(d?.supplier_rows??[],selectedDossier),managedOnly),[d,selectedDossier,managedOnly]);const customerRows=(0,consume_shared_module_default_react_strict_.useMemo)(()=>withManagedFilter(withDossierFilter(d?.customer_rows??[],selectedDossier),managedOnly),[d,selectedDossier,managedOnly]);return/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Container,{fluid:true,my:isMobile?0:"md",px:isMobile?12:void 0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(PageHeader.m,{title:"Accounting",updatedAt:d?.computed_at?new Date(d.computed_at).getTime():latest.dataUpdatedAt,isFetching:latest.isFetching,isError:latest.isError,onRefresh:()=>latest.refetch(),actions:/*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tooltip,{label:headerHidden?`Afficher les filtres${activeFilterCount>0?` (${activeFilterCount} actif${activeFilterCount>1?"s":""})`:""}`:"Masquer les filtres",withArrow:true,children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Indicator,{disabled:!headerHidden||0===activeFilterCount,label:activeFilterCount,size:16,children:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.ActionIcon,{variant:"default",size:"lg","aria-label":headerHidden?"Afficher les filtres":"Masquer les filtres",onClick:()=>setHeaderHidden(hidden=>!hidden),children:headerHidden?/*#__PURE__*/(0,jsx_runtime.jsx)(tabler_icons_react_mjs_.IconLayoutNavbarExpand,{size:18}):/*#__PURE__*/(0,jsx_runtime.jsx)(tabler_icons_react_mjs_.IconLayoutNavbarCollapse,{size:18})})})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Button,{loading:recompute.isPending,disabled:latest.isPending,onClick:()=>recompute.mutate(),variant:"light",size:isMobile?"xs":"sm",children:"Recalculer"})]})}),latest.isFetching&&!consoleLoading&&/*#__PURE__*/(0,jsx_runtime.jsx)(LoadingProgress.A,{label:d?"Actualisation des donn\xe9es comptables…":"Chargement des donn\xe9es comptables…"}),d?d.available?/*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{mb:"md",align:"end",gap:"sm",display:headerHidden?"none":void 0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Select,{label:"Focus dossier",placeholder:"Tous les dossiers",data:allDossiers.map(dos=>({value:dos,label:dos})),value:selectedDossier,onChange:setSelectedDossier,searchable:true,clearable:true,w:isMobile?"100%":320}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Select,{label:"Responsable",placeholder:"Tous les responsables",data:responsableOptions,value:selectedResponsable,onChange:setSelectedResponsable,searchable:true,clearable:true,w:isMobile?"100%":240}),(selectedDossier||selectedResponsable)&&/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Button,{variant:"subtle",onClick:()=>{setSelectedDossier(null);setSelectedResponsable(null)},w:isMobile?"100%":void 0,children:"R\xe9initialiser"}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.SegmentedControl,{value:managedOnly?"managed":"all",onChange:v=>setManagedOnly("managed"===v),data:[{label:"G\xe9r\xe9s",value:"managed"},{label:"Tous",value:"all"}],w:isMobile?"100%":void 0})]}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Tabs,{value:tab,onChange:setTab,children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Tabs.List,{style:isMobile?{flexWrap:"nowrap",overflowX:"auto",overflowY:"hidden"}:void 0,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tabs.Tab,{value:"resume",children:"R\xe9sum\xe9"}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tabs.Tab,{value:"dossiers",children:"Dossiers"})]}),/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Tabs.Panel,{value:"resume",pt:"md",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.SimpleGrid,{cols:isMobile?2:5,mb:"md",spacing:"sm",display:headerHidden?"none":void 0,children:scoreTiles.map(tile=>{const active=statusFilter===tile.key;return/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Card,{withBorder:active,style:{cursor:"pointer",borderColor:active?"var(--mantine-color-blue-5)":void 0},onClick:()=>setStatusFilter(tile.key),children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",children:tile.label}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{fw:700,size:"xl",c:tile.color,children:tile.value})]},tile.key)})}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileDossierLineList,{rows:summaryRows,onDrill:openDrill,computedAt:d?.computed_at,activeRecoScopes:activeRecoScopes,reconciliationDates:reconciliationDates,reconciliationGaps:reconciliationGaps}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{maxHeight:headerHidden?"calc(100vh - 170px)":"calc(100vh - 320px)",columns:unifiedCols,rows:summaryRows,rowKey:r=>`${r.source}:${r.dossier}`})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tabs.Panel,{value:"top5",pt:"md",children:/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Stack,{gap:"lg",children:[/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Title,{order:4,mb:"sm",children:"Top 5 comptes d'attente (471)"}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileTopSuspenseList,{rows:topSuspenseRows,onRowClick:openDrill}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:TOP_SUSPENSE_COLS,rows:topSuspenseRows,onRowClick:openDrill})]}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Title,{order:4,mb:"sm",children:"Top 5 fournisseurs d\xe9biteurs (401)"}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileTopSupplierList,{rows:topSupplierRows,onRowClick:openDrill}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:TOP_SUPPLIER_COLS,rows:topSupplierRows,onRowClick:openDrill})]}),/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Title,{order:4,mb:"sm",children:"Top 5 clients cr\xe9diteurs (411)"}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileTopCustomerList,{rows:topCustomerRows,onRowClick:openDrill}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:TOP_CUSTOMER_COLS,rows:topCustomerRows,onRowClick:openDrill})]})]})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tabs.Panel,{value:"s471",pt:"md",children:isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileSuspenseList,{rows:suspenseRows,onRowClick:openDrill}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:SUSPENSE_COLS,rows:suspenseRows,onRowClick:openDrill})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tabs.Panel,{value:"s58",pt:"md",children:isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileSuspenseList,{rows:internalTransferRows,onRowClick:openDrill}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:SUSPENSE_COLS,rows:internalTransferRows,onRowClick:openDrill})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tabs.Panel,{value:"s401",pt:"md",children:isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileSupplierList,{rows:supplierRows,onRowClick:openDrill}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:SUPPLIER_COLS,rows:supplierRows,onRowClick:openDrill})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tabs.Panel,{value:"s411",pt:"md",children:isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileCustomerList,{rows:customerRows,onRowClick:openDrill}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:CUSTOMER_COLS,rows:customerRows,onRowClick:openDrill})}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Tabs.Panel,{value:"dossiers",pt:"md",children:/*#__PURE__*/(0,jsx_runtime.jsx)(DossiersTab,{})})]})]}):/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{c:"dimmed",children:"Aucun snapshot disponible - lancez \xab Recalculer \xbb ou attendez le run nocturne."}):latest.isError?/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Alert,{color:"red",title:"Les donn\xe9es comptables n’ont pas pu \xeatre charg\xe9es",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"sm",mb:"sm",children:"V\xe9rifiez votre connexion puis r\xe9essayez."}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Button,{variant:"light",onClick:()=>void latest.refetch(),loading:latest.isFetching,children:"R\xe9essayer"})]}):"paused"===latest.fetchStatus?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{c:"dimmed",children:"En attente de connexion…"}):null,latest.isError?/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{c:"red",mt:"md",children:"Erreur de chargement."}):null,/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Drawer,{opened:!!drillDossier,onClose:closeDrill,position:isMobile?"bottom":"right",size:isMobile?"calc(100dvh - 88px)":"reconciliation"===drillCategory?"min(1400px, 95vw)":"xl",title:drillDossier?/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",align:"center",wrap:isMobile?"wrap":"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Title,{order:isMobile?5:4,children:drillCategoryLabel(drillCategory)?`${drillCategoryLabel(drillCategory)} : ${drillDossier}`:`Dossier ${drillDossier}`}),drillProvider&&/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:4,wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:drillProvider}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"sm",c:"dimmed",children:drillProvider})]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Button,{size:"xs",variant:"light",onClick:()=>{setSelectedDossier(drillDossier);closeDrill()},children:"Focus sur ce dossier"})]}):null,styles:isMobile?{body:{padding:12,paddingBottom:24}}:void 0,children:drillData&&/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Stack,{gap:"md",children:[(null===drillCategory||"reconciliation"===drillCategory)&&/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{justify:"space-between",align:"center",mb:6,children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Title,{order:5,children:["Rappros bancaires (",drillData.reconciliation.length,")"]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Button,{size:"xs",variant:pendingMutes.length>0?"filled":"light",disabled:0===pendingMutes.length,loading:saveReconciliationMutes.isPending,onClick:()=>saveReconciliationMutes.mutate(pendingMutes,{onSuccess:()=>setMuteDraft(new Map)}),children:pendingMutes.length>1?`Enregistrer (${pendingMutes.length})`:"Enregistrer"})]}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileReconciliationList,{rows:reconciliationRows,onToggleMute:onToggleMute}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:drillRecoCols,rows:reconciliationRows,rowKey:row=>`${row.airporting_company_id}:${row.account_id}`})]}),(null===drillCategory||"471"===drillCategory)&&/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(DrillSectionTitle,{label:"Comptes d'attente 471",count:drillData.suspense.length,visibleSum:sumBy(drillData.suspense,r=>r.solde_net),total:drillData.totals.suspense,currency:drillData.currency}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileSuspenseList,{rows:drillData.suspense}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:DRILL_SUSPENSE_COLS,rows:drillData.suspense})]}),(null===drillCategory||"58"===drillCategory)&&/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(DrillSectionTitle,{label:"Virements internes 58",count:drillData.internalTransfers.length,visibleSum:sumBy(drillData.internalTransfers,r=>r.solde_net),total:drillData.totals.internalTransfers,currency:drillData.currency}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileSuspenseList,{rows:drillData.internalTransfers}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:DRILL_SUSPENSE_COLS,rows:drillData.internalTransfers})]}),(null===drillCategory||"supplier"===drillCategory)&&/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(DrillSectionTitle,{label:"Fournisseurs d\xe9biteurs 401",count:drillData.supplier.length,visibleSum:sumBy(drillData.supplier,r=>r.solde_debiteur_eur),total:drillData.totals.supplier,currency:drillData.currency}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileSupplierList,{rows:drillData.supplier}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:DRILL_SUPPLIER_COLS,rows:drillData.supplier})]}),(null===drillCategory||"customer"===drillCategory)&&/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(DrillSectionTitle,{label:"Clients cr\xe9diteurs 411",count:drillData.customer.length,visibleSum:sumBy(drillData.customer,r=>r.solde_crediteur_eur),total:drillData.totals.customer,currency:drillData.currency}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileCustomerList,{rows:drillData.customer}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:DRILL_CUSTOMER_COLS,rows:drillData.customer})]}),(null===drillCategory||"factor"===drillCategory)&&drillData.factor.length>0&&/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(DrillSectionTitle,{label:"Cr\xe9ances c\xe9d\xe9es au factor 4116",count:drillData.factor.length,visibleSum:sumBy(drillData.factor,r=>r.solde_eur),total:drillData.totals.factor}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileCustomerList,{rows:drillData.factor.map(factorRowAsCustomerRow)}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:DRILL_FACTOR_COLS,rows:drillData.factor})]}),(null===drillCategory||"supplier_invoices_accounting"===drillCategory)&&drillData.invoiceLine?.source==="pennylane"&&/*#__PURE__*/(0,jsx_runtime.jsx)(PendingInvoiceDrill,{title:"Factures fournisseurs \xe0 traiter (compta)",count:drillData.pendingInvoicesAccountingCount,rows:drillData.pendingInvoicesAccounting,line:drillData.invoiceLine,space:"compta",isMobile:isMobile}),(null===drillCategory||"supplier_invoices_management"===drillCategory)&&drillData.invoiceLine?.source==="pennylane"&&/*#__PURE__*/(0,jsx_runtime.jsx)(PendingInvoiceDrill,{title:"Factures fournisseurs \xe0 traiter (gestion)",count:drillData.pendingInvoicesManagementCount,rows:drillData.pendingInvoicesManagement,line:drillData.invoiceLine,space:"gestion",isMobile:isMobile}),(null===drillCategory||"provision_cp"===drillCategory)&&null!==drillData.provisionCp&&"non_mesurable"!==drillData.provisionCp.status&&/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{children:[/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Title,{order:5,mb:6,children:["Provision CP 4282 + 4382 (",provisionDrillEntries.length," ","\xe9critures sur 18 mois) \xb7 solde"," ",formatCurrency(drillData.provisionCp.balance,drillData.currency)]}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{size:"xs",c:"dimmed",mb:6,children:provisionCpHint(drillData.provisionCp)}),isMobile?/*#__PURE__*/(0,jsx_runtime.jsx)(MobileProvisionList,{rows:provisionDrillEntries}):/*#__PURE__*/(0,jsx_runtime.jsx)(DetailTable,{columns:DRILL_PROVISION_COLS,rows:provisionDrillEntries})]})]})})]})}const TOP_SUSPENSE_COLS=[{key:"rank",label:"#",numeric:true},{key:"source",label:"Source",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:r.source})},{key:"managed",label:"G\xe9r\xe9",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:r.managed})},{key:"dossier",label:"Dossier"},{key:"solde_eur",label:"Solde 471 (€)",numeric:true},{key:"nb_ecritures",label:"Nb \xe9cr.",numeric:true},{key:"top_libelle",label:"Top \xe9criture"},{key:"top_montant",label:"Montant",numeric:true}];const TOP_SUPPLIER_COLS=[{key:"rank",label:"#",numeric:true},{key:"source",label:"Source",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:r.source})},{key:"managed",label:"Manag\xe9",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:r.managed})},{key:"dossier",label:"Dossier"},{key:"total_eur",label:"Total d\xe9biteur (€)",numeric:true},{key:"nb_fournisseurs",label:"Nb fourn.",numeric:true},{key:"top_nom",label:"Top fournisseur"},{key:"top_montant",label:"Montant",numeric:true}];const TOP_CUSTOMER_COLS=[{key:"rank",label:"#",numeric:true},{key:"source",label:"Source",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:r.source})},{key:"managed",label:"Manag\xe9",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:r.managed})},{key:"dossier",label:"Dossier"},{key:"total_eur",label:"Total cr\xe9diteur (€)",numeric:true},{key:"nb_clients",label:"Nb clients",numeric:true},{key:"top_nom",label:"Top client"},{key:"top_montant",label:"Montant",numeric:true}];function buildUnifiedCols(computedAt,openDrill,filterResponsable,activeRecoScopes,reconciliationDates,reconciliationGaps){const hasReconciliationDrill=row=>null!=reconciliationDateForLine(row,reconciliationDates)||activeRecoScopes.has(reconciliationScopeKey(row));return[{key:"source",label:"Source",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:r.source})},{key:"managed",label:"Manag\xe9",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:r.managed})},{key:"score",label:"Tenue",hint:"Note de tenue comptable sur 5 : un point par contr\xf4le pass\xe9 (factures fournisseurs en attente, banques rapproch\xe9es, compte d’attente, virements internes, comptes tiers). Survolez pour le d\xe9tail.",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ScoreStars,{row:r})},{key:"dossier",label:"Dossier",render:r=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(CompanyLogo.D,{slug:r.slug,updatedAt:r.logo_updated_at,size:20}),/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:r.dossier})]})},{key:"responsable",label:"Responsable",sortValue:r=>r.responsable?.name??"",onCellClick:filterResponsable,render:r=>r.responsable?/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Avatar,{src:r.responsable.avatar_url,size:20,radius:"xl"}),/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:r.responsable.name})]}):/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:"—"})},{key:"fiscal_year_end",label:"Cl\xf4ture",render:r=>r.fiscal_year_end?/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:r.fiscal_year_end.split("-").reverse().join("/")}):/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:"—"})},{key:"solde_attente_eur",label:"Solde 471",numeric:true,render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:formatKeur(r.solde_attente_eur,r.currency),onClick:()=>openDrill(r,"471")})},{key:"solde_virements_eur",label:"Solde 58",numeric:true,render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:formatKeur(r.solde_virements_eur,r.currency),onClick:()=>openDrill(r,"58")})},{key:"total_fournisseurs_eur",label:"Fourn. d\xe9biteurs",numeric:true,render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:formatKeur(r.total_fournisseurs_eur,r.currency),onClick:()=>openDrill(r,"supplier")})},{key:"total_clients_eur",label:"Clients cr\xe9diteurs",numeric:true,render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:formatKeur(r.total_clients_eur,r.currency),onClick:()=>openDrill(r,"customer")})},{key:"total_factor_eur",label:"Cr\xe9ances c\xe9d\xe9es",hint:"Cr\xe9ances c\xe9d\xe9es au factor (comptes 4116) : solde cr\xe9diteur par construction, il vaut moins l’encours c\xe9d\xe9 au portail du factor. Ce n’est pas une anomalie clients.",numeric:true,render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:factorKeur(r),onClick:()=>openDrill(r,"factor")})},{key:"last_reconciliation_date",label:"Rappro le + en retard",isCellClickable:hasReconciliationDrill,onCellClick:row=>{if(hasReconciliationDrill(row))openDrill(row,"reconciliation")},render:r=>{const lastReconciliationDate=reconciliationDateForLine(r,reconciliationDates);const hasActive=activeRecoScopes.has(reconciliationScopeKey(r));return/*#__PURE__*/(0,jsx_runtime.jsxs)("span",{children:[/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,c:null==lastReconciliationDate?hasActive?"red":"dimmed":void 0,children:lastReconciliationDate?formatDate(lastReconciliationDate):hasActive?"jamais":"-"}),/*#__PURE__*/(0,jsx_runtime.jsx)(ReconciliationGapBadge,{count:reconciliationGaps.get(reconciliationScopeKey(r))??0})]})}},{key:"pending_supplier_invoices",label:"Factures fournisseurs \xe0 traiter (compta)",hint:"Factures fournisseurs \xe0 traiter c\xf4t\xe9 Comptabilit\xe9 sur l’ann\xe9e civile courante. Cliquez pour voir les 10 plus anciennes (Pennylane). Odoo, Xero et Zoho : brouillons et factures \xe0 valider.",numeric:true,render:r=>{if(null==r.pending_supplier_invoices)return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:"—"});const text=formatNumber(r.pending_supplier_invoices);if("pennylane"!==r.source)return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:text});return/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:text,onClick:()=>openDrill(r,"supplier_invoices_accounting")})}},{key:"management_supplier_invoices_inbox",label:"Factures fournisseurs \xe0 traiter (gestion)",hint:"Nombre affich\xe9 dans la Bo\xeete de r\xe9ception des factures fournisseurs c\xf4t\xe9 Gestion, ou dans les Documents entrants XRP Flex en attente de traitement, toutes dates confondues. Pennylane : cliquez pour voir les 10 plus anciennes.",numeric:true,render:r=>{if(null==r.management_supplier_invoices_inbox)return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:"—"});const text=formatNumber(r.management_supplier_invoices_inbox);if("pennylane"!==r.source)return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:text});return/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:text,onClick:()=>openDrill(r,"supplier_invoices_management")})}},{key:"provision_cp",label:"Provision CP",hint:"Provision de cong\xe9s pay\xe9s (comptes d\xe9di\xe9s 4282 + 4382) : elle doit \xeatre repass\xe9e \xe0 chaque cl\xf4ture annuelle. Alerte si rien de saisi un mois apr\xe8s le mois de cl\xf4ture. Cliquez pour voir les \xe9critures.",render:r=>{const p=r.provision_cp;if(null==p||"non_mesurable"===p.status)return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:"—"});if("en_retard"===p.status)return/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,c:"red",fw:700,children:"non saisie"}),onClick:()=>openDrill(r,"provision_cp")});const text="saisie"===p.status?`saisie le ${formatDate(p.window_entry_date)}`:`\xe9ch\xe9ance le ${formatDate(p.deadline)}`;return/*#__PURE__*/(0,jsx_runtime.jsx)(ClickableMetricValue,{value:text,onClick:()=>openDrill(r,"provision_cp")})}},{key:"vat_regime",label:"R\xe9gime TVA",hint:VAT_REGIME_HINT,sortValue:r=>vatControlOf(r)?.regime??null,render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(VatRegimeCell,{control:vatControlOf(r)})},{key:"vat_sales_gap",label:"\xc9cart TVA ventes",hint:VAT_SALES_HINT,numeric:true,sortValue:r=>vatControlOf(r)?.sales.gap??null,render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(VatGapCell,{control:vatControlOf(r),side:"sales",currency:r.currency})},{key:"vat_purchases_gap",label:"\xc9cart TVA achats",hint:VAT_PURCHASES_HINT,numeric:true,sortValue:r=>vatControlOf(r)?.purchases.gap??null,render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(VatGapCell,{control:vatControlOf(r),side:"purchases",currency:r.currency})},{key:"last_entry_date",label:"Date mise \xe0 jour",hint:"La plus ancienne des 3 dates de fra\xeecheur : derni\xe8re \xe9criture comptable, dernier import GLA, dernier passage du scrapper rappros/factures. Survolez pour le d\xe9tail des 3 dates.",render:row=>/*#__PURE__*/(0,jsx_runtime.jsx)(UpdateDateCell,{row:row,computedAt:computedAt})}]}const SUSPENSE_COLS=[{key:"source",label:"Source",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:r.source})},{key:"managed",label:"Manag\xe9",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:r.managed})},{key:"dossier",label:"Dossier"},{key:"date",label:"Date"},{key:"numero_compte",label:"N\xb0 Compte"},{key:"libelle_compte",label:"Libell\xe9 compte"},{key:"libelle_ecriture",label:"Libell\xe9 \xe9criture"},{key:"journal",label:"Journal"},{key:"numero_piece",label:"N\xb0 Pi\xe8ce"},{key:"debit",label:"D\xe9bit",numeric:true},{key:"credit",label:"Cr\xe9dit",numeric:true},{key:"solde_net",label:"Solde net",numeric:true},{key:"lettre",label:"Lettr\xe9"},{key:"devise",label:"Devise"}];const SUPPLIER_COLS=[{key:"source",label:"Source",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:r.source})},{key:"managed",label:"Manag\xe9",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:r.managed})},{key:"dossier",label:"Dossier"},{key:"fournisseur",label:"Fournisseur"},{key:"solde_debiteur_eur",label:"Solde d\xe9biteur (€)",numeric:true},{key:"nb_ecritures",label:"Nb \xe9cr. non lettr\xe9es",numeric:true},{key:"devise",label:"Devise"}];const CUSTOMER_COLS=[{key:"source",label:"Source",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ProviderIcon,{provider:r.source})},{key:"managed",label:"Manag\xe9",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(ManagedBadge,{managed:r.managed})},{key:"dossier",label:"Dossier"},{key:"client",label:"Client"},{key:"solde_crediteur_eur",label:"Solde cr\xe9diteur (€)",numeric:true},{key:"nb_ecritures",label:"Nb \xe9cr. non lettr\xe9es",numeric:true},{key:"devise",label:"Devise"}];function buildDrillRecoCols(onToggleMute){return[{key:"bank_label",label:"Compte",render:r=>/*#__PURE__*/(0,jsx_runtime.jsxs)(index_mjs_.Group,{gap:"xs",wrap:"nowrap",children:[/*#__PURE__*/(0,jsx_runtime.jsx)(BankLogo,{label:r.bank_label||r.account_name,size:20}),/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,c:r.muted?"dimmed":void 0,children:recoAccountLabel(r)})]})},{key:"last_reconciled_period_end",label:"Dernier rappro",render:r=>{if(r.muted)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,c:"dimmed",children:"non suivi"});if(null==r.last_reconciled_period_end)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,c:"red",fw:700,children:"jamais"});return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:r.last_reconciled_period_end.split("-").reverse().join("/")})}},{key:"last_movement_date",label:"Derni\xe8re op\xe9ration",hint:"Date de la derni\xe8re \xe9criture r\xe9elle du compte au grand livre. Un compte sans op\xe9ration depuis son dernier rappro n’a rien \xe0 rapprocher.",render:r=>{if(null==r.last_movement_date)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,c:"dimmed",children:"—"});return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:formatDate(r.last_movement_date)})}},{key:"unreconciled_since",label:"\xc0 rapprocher depuis",hint:"Premi\xe8re \xe9criture post\xe9rieure au dernier rappro. C’est de l\xe0 que date le retard r\xe9el, et non du dernier rappro : un compte rapproch\xe9 en avril puis rest\xe9 sans mouvement jusqu’en septembre n’accuse pas cinq mois de retard.",render:r=>{if(r.muted)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,c:"dimmed",children:"non suivi"});if(null!=r.unreconciled_since)return/*#__PURE__*/(0,jsx_runtime.jsx)("span",{children:formatDate(r.unreconciled_since)});if(null==r.last_movement_date)return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,c:"dimmed",children:"—"});return/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Text,{span:true,c:"teal",children:"rien \xe0 rapprocher"})}},{key:"reconciled_balance_reading",label:"Soldes du dernier rappro termin\xe9",hint:"Seul un \xe9cart sur cette p\xe9riode, pour un compte suivi, porte le signal \xe0 v\xe9rifier.",sortValue:row=>balanceGap(row.reconciled_balance_reading),render:row=>/*#__PURE__*/(0,jsx_runtime.jsx)(ReconciliationBalanceCell,{row:row})},{key:"muted",label:"Suivi",render:r=>/*#__PURE__*/(0,jsx_runtime.jsx)(index_mjs_.Switch,{size:"sm",checked:!r.muted,label:r.muted?"non suivi":"suivi",onLabel:"suivi",onChange:e=>onToggleMute({company_id:r.airporting_company_id,account_id:r.account_id,muted:!e.currentTarget.checked})})}]}const DRILL_SUSPENSE_COLS=[{key:"date",label:"Date"},{key:"numero_compte",label:"N\xb0 Compte"},{key:"libelle_ecriture",label:"Libell\xe9"},{key:"debit",label:"D\xe9bit",numeric:true},{key:"credit",label:"Cr\xe9dit",numeric:true},{key:"solde_net",label:"Solde net",numeric:true},{key:"lettre",label:"Lettr\xe9"}];const DRILL_SUPPLIER_COLS=[{key:"fournisseur",label:"Fournisseur"},{key:"solde_debiteur_eur",label:"Solde d\xe9biteur (€)",numeric:true},{key:"nb_ecritures",label:"Nb \xe9cr.",numeric:true},{key:"devise",label:"Devise"}];const DRILL_FACTOR_COLS=[{key:"compte",label:"Compte"},{key:"solde_eur",label:"Solde (€)",numeric:true},{key:"nb_ecritures",label:"Nb \xe9cr.",numeric:true},{key:"devise",label:"Devise"}];const DRILL_PROVISION_COLS=[{key:"date",label:"Date",render:r=>formatDate(r.date)},{key:"account",label:"Compte"},{key:"journal_label",label:"Journal",render:r=>r.journal_label??r.journal_code??"—"},{key:"label",label:"Libell\xe9",render:r=>r.label||r.account_label||"—"},{key:"debit",label:"D\xe9bit",numeric:true},{key:"credit",label:"Cr\xe9dit",numeric:true}];const DRILL_PENDING_INVOICE_COLS=[{key:"date",label:"Date",render:r=>formatDate(r.date)},{key:"label",label:"Facture"},{key:"invoice_number",label:"N\xb0 facture"},{key:"amount",label:"Montant",numeric:true,render:r=>formatCurrency(r.amount,r.currency)},{key:"status",label:"Statut"}];function factorRowAsCustomerRow(r){return{source:r.source,dossier:r.dossier,managed:r.managed,client:r.compte,solde_crediteur_eur:r.solde_eur,nb_ecritures:r.nb_ecritures,devise:r.devise}}const DRILL_CUSTOMER_COLS=[{key:"client",label:"Client"},{key:"solde_crediteur_eur",label:"Solde cr\xe9diteur (€)",numeric:true},{key:"nb_ecritures",label:"Nb \xe9cr.",numeric:true},{key:"devise",label:"Devise"}];function EtatSaisie(props){return/*#__PURE__*/(0,jsx_runtime.jsx)(consume_shared_module_default_react_strict_.StrictMode,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(providers.C,{...props,children:/*#__PURE__*/(0,jsx_runtime.jsx)(EtatSaisieApp,{})})})}}}]);
|