From 37cc9442dabaeed25f1dcd835bbd0238a9f61682 Mon Sep 17 00:00:00 2001 From: Manus Date: Sun, 3 May 2026 10:56:20 -0400 Subject: [PATCH] feat: les admins voient toutes les factures/logs/historique BAP, colonne Utilisateur dans Factures --- client/src/pages/Invoices.tsx | 10 ++++++++++ server/db.ts | 18 ++++++++++++++++++ server/routers.ts | 15 +++++++++++++++ todo.md | 9 +++++++++ 4 files changed, 52 insertions(+) diff --git a/client/src/pages/Invoices.tsx b/client/src/pages/Invoices.tsx index 1c84f0a..16c5285 100644 --- a/client/src/pages/Invoices.tsx +++ b/client/src/pages/Invoices.tsx @@ -1,5 +1,6 @@ import { useState } from "react"; import DashboardLayout from "@/components/DashboardLayout"; +import { useAuth } from "@/_core/hooks/useAuth"; import { Card, CardContent } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; @@ -52,9 +53,12 @@ export default function Invoices() { const [pendingInvoiceId, setPendingInvoiceId] = useState(null); const [textDialogOpen, setTextDialogOpen] = useState(false); const [selectedInvoiceText, setSelectedInvoiceText] = useState(null); + const { user } = useAuth(); + const isAdmin = user?.role === 'admin'; const { data: invoices, isLoading } = trpc.invoices.list.useQuery(); const { data: departments } = trpc.departments.getByUser.useQuery(); const { data: allocations } = trpc.accountingAllocations.getByUser.useQuery(); + const { data: allUsers } = trpc.admin.getAllUsers.useQuery(undefined, { enabled: isAdmin }); const utils = trpc.useUtils(); const exportExcelMutation = trpc.sftp.exportToExcel.useMutation({ @@ -434,6 +438,7 @@ export default function Invoices() { onCheckedChange={handleSelectAll} /> + {isAdmin && Utilisateur} Fournisseur Destinataire N° Facture @@ -456,6 +461,11 @@ export default function Invoices() { onCheckedChange={(checked) => handleSelectOne(invoice.id, checked as boolean)} /> + {isAdmin && ( + + {allUsers?.find(u => u.id === invoice.userId)?.name || `#${invoice.userId}`} + + )}