Checkpoint: Ajout complet du champ "Destinataire" (recipientName) dans toute l'application : schéma DB (invoices.recipientName + userSettings.recipientKeywords), extraction IA (prompt LLM + interface), services d'import (email, dossier, upload manuel), interface utilisateur (liste des factures, détail, paramètres mots-clés), règles d'automatisme et configuration des champs LLM obligatoires.
This commit is contained in:
@@ -664,6 +664,7 @@ export default function Settings() {
|
||||
const [supplierKeywords, setSupplierKeywords] = useState("");
|
||||
const [totalAmountKeywords, setTotalAmountKeywords] = useState("");
|
||||
const [subscriptionKeywords, setSubscriptionKeywords] = useState("");
|
||||
const [recipientKeywords, setRecipientKeywords] = useState("");
|
||||
const [sftpHost, setSftpHost] = useState("");
|
||||
const [sftpPort, setSftpPort] = useState(22);
|
||||
const [sftpUsername, setSftpUsername] = useState("");
|
||||
@@ -681,6 +682,7 @@ export default function Settings() {
|
||||
setSupplierKeywords(settings.supplierKeywords || "");
|
||||
setTotalAmountKeywords(settings.totalAmountKeywords || "");
|
||||
setSubscriptionKeywords(settings.subscriptionKeywords || "");
|
||||
setRecipientKeywords((settings as any).recipientKeywords || "");
|
||||
setSftpHost(settings.sftpHost || "");
|
||||
setSftpPort(settings.sftpPort || 22);
|
||||
setSftpUsername(settings.sftpUsername || "");
|
||||
@@ -723,6 +725,7 @@ export default function Settings() {
|
||||
supplierKeywords,
|
||||
totalAmountKeywords,
|
||||
subscriptionKeywords,
|
||||
recipientKeywords,
|
||||
sftpHost,
|
||||
sftpPort,
|
||||
sftpUsername,
|
||||
@@ -986,6 +989,24 @@ export default function Settings() {
|
||||
Les factures contenant ces mots-clés seront automatiquement marquées comme abonnement
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="space-y-3">
|
||||
<Label htmlFor="recipientKeywords" className="text-base font-semibold">
|
||||
Destinataire
|
||||
</Label>
|
||||
<Textarea
|
||||
id="recipientKeywords"
|
||||
value={recipientKeywords}
|
||||
onChange={(e) => setRecipientKeywords(e.target.value)}
|
||||
placeholder="Destinataire, Client, Adressé à, Bill to, Ship to"
|
||||
rows={2}
|
||||
className="resize-none"
|
||||
/>
|
||||
<p className="text-sm text-muted-foreground flex items-center gap-2">
|
||||
<AlertCircle className="w-4 h-4" />
|
||||
Mots-clés pour identifier le destinataire/client de la facture
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
Reference in New Issue
Block a user