Checkpoint: Bouton Relancer corrigé (automatismes uniquement, sans LLM). Système d'apprentissage complet : table invoiceLearnings, routes tRPC, déclenchement depuis InvoiceDetail, application lors des imports, page LearningSettings dans Configuration > Apprentissages IA.
This commit is contained in:
@@ -54,6 +54,8 @@ export default function InvoiceDetail() {
|
||||
}
|
||||
}, [invoice]);
|
||||
|
||||
const upsertLearningMutation = trpc.learnings.upsert.useMutation();
|
||||
|
||||
const updateMutation = trpc.invoices.update.useMutation({
|
||||
onSuccess: () => {
|
||||
toast.success("Facture mise à jour avec succès");
|
||||
@@ -80,6 +82,42 @@ export default function InvoiceDetail() {
|
||||
|
||||
const newQualityScore = Math.round((filledFields / totalFields) * 100);
|
||||
|
||||
// Apprentissage : enregistrer les corrections manuelles sur les champs clés
|
||||
// On compare les valeurs actuelles (invoice) avec les nouvelles valeurs (formData)
|
||||
if (invoice && formData.supplierName) {
|
||||
const supplierName = formData.supplierName || invoice.supplierName || "";
|
||||
if (!supplierName) return;
|
||||
|
||||
// isSubscription : géré séparément via le toggle dans InvoicesBAP
|
||||
// typeAchat
|
||||
if (formData.typeAchat !== (invoice.typeAchat || "")) {
|
||||
upsertLearningMutation.mutate({
|
||||
supplierName,
|
||||
fieldName: "typeAchat",
|
||||
originalValue: invoice.typeAchat || undefined,
|
||||
correctedValue: formData.typeAchat,
|
||||
});
|
||||
}
|
||||
// serviceConcerne
|
||||
if (formData.serviceConcerne !== (invoice.serviceConcerne || "")) {
|
||||
upsertLearningMutation.mutate({
|
||||
supplierName,
|
||||
fieldName: "serviceConcerne",
|
||||
originalValue: invoice.serviceConcerne || undefined,
|
||||
correctedValue: formData.serviceConcerne,
|
||||
});
|
||||
}
|
||||
// ventilationComptable
|
||||
if (formData.ventilationComptable !== (invoice.ventilationComptable || "")) {
|
||||
upsertLearningMutation.mutate({
|
||||
supplierName,
|
||||
fieldName: "ventilationComptable",
|
||||
originalValue: invoice.ventilationComptable || undefined,
|
||||
correctedValue: formData.ventilationComptable,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
updateMutation.mutate({
|
||||
id: invoiceId,
|
||||
data: {
|
||||
|
||||
Reference in New Issue
Block a user