Checkpoint: Ajout du filtre destinataire dans la liste des factures (dropdown + recherche textuelle), graphique "Top 10 destinataires" et liste détaillée dans le dashboard, filtre destinataire dans les paramètres SFTP (sftpRecipientFilter) avec application lors de l'export

This commit is contained in:
Manus
2026-04-12 05:20:55 -04:00
parent 604426523d
commit edf7cc704d
10 changed files with 1707 additions and 40 deletions

View File

@@ -671,6 +671,7 @@ export default function Settings() {
const [sftpPassword, setSftpPassword] = useState("");
const [sftpRemotePath, setSftpRemotePath] = useState("/");
const [sftpAutoExport, setSftpAutoExport] = useState(false);
const [sftpRecipientFilter, setSftpRecipientFilter] = useState("");
const [llmLogsRetentionMonths, setLlmLogsRetentionMonths] = useState(3);
useEffect(() => {
@@ -689,6 +690,7 @@ export default function Settings() {
setSftpPassword(settings.sftpPassword || "");
setSftpRemotePath(settings.sftpRemotePath || "/");
setSftpAutoExport(settings.sftpAutoExport === 1);
setSftpRecipientFilter((settings as any).sftpRecipientFilter || "");
setLlmLogsRetentionMonths(settings.llmLogsRetentionMonths || 3);
}
}, [settings]);
@@ -732,6 +734,7 @@ export default function Settings() {
sftpPassword,
sftpRemotePath,
sftpAutoExport: sftpAutoExport ? 1 : 0,
sftpRecipientFilter,
llmLogsRetentionMonths,
});
};
@@ -1093,6 +1096,22 @@ export default function Settings() {
</p>
</div>
<div className="space-y-3">
<Label htmlFor="sftpRecipientFilter" className="text-base font-semibold">
Filtre destinataire
</Label>
<Input
id="sftpRecipientFilter"
value={sftpRecipientFilter}
onChange={(e) => setSftpRecipientFilter(e.target.value)}
placeholder="Ex: DSI, Service Travaux, Itinova... (vide = exporter toutes)"
className="h-11"
/>
<p className="text-sm text-muted-foreground flex items-center gap-2">
<AlertCircle className="w-4 h-4" />
Seules les factures dont le destinataire contient cette valeur seront exportées automatiquement. Laisser vide pour exporter toutes les factures.
</p>
</div>
<div className="flex items-center justify-between p-4 bg-muted/50 rounded-lg border">
<div className="space-y-1">
<Label htmlFor="sftpAutoExport" className="text-base font-semibold cursor-pointer">