Checkpoint: Ajout du bouton Supprimer pour faciliter la réimportation des factures.
Modification apportée : - Ajout d'un bouton "Supprimer" dans la page Factures permettant de supprimer les factures sélectionnées - Confirmation avant suppression pour éviter les suppressions accidentelles - Message de succès après suppression avec compteur - Création du dossier storage pour le stockage local des fichiers PDF Prochaine étape recommandée : 1. Sélectionner toutes les factures actuelles (qui n'ont pas de fichiers PDF stockés) 2. Cliquer sur "Supprimer" pour les supprimer 3. Ré-importer le fichier "FACTURES FOURNISSEURS.pdf" via la page "Importer" 4. Cette fois, les fichiers PDF seront correctement stockés dans le dossier storage et l'export PDF fonctionnera
This commit is contained in:
@@ -14,7 +14,7 @@ import {
|
||||
TableRow,
|
||||
} from "@/components/ui/table";
|
||||
import { trpc } from "@/lib/trpc";
|
||||
import { Search, FileText, Download, FileSpreadsheet } from "lucide-react";
|
||||
import { Search, FileText, Download, FileSpreadsheet, Trash2 } from "lucide-react";
|
||||
import * as XLSX from 'xlsx';
|
||||
import { toast } from "sonner";
|
||||
import { useLocation } from "wouter";
|
||||
@@ -204,6 +204,27 @@ export default function Invoices() {
|
||||
<Download className="w-4 h-4 mr-2" />
|
||||
PDF ({selectedIds.length})
|
||||
</Button>
|
||||
<Button
|
||||
onClick={async () => {
|
||||
if (confirm(`Voulez-vous vraiment supprimer ${selectedIds.length} facture(s) ?`)) {
|
||||
try {
|
||||
for (const id of selectedIds) {
|
||||
await utils.client.invoices.delete.mutate({ id });
|
||||
}
|
||||
toast.success(`${selectedIds.length} facture(s) supprimée(s)`);
|
||||
setSelectedIds([]);
|
||||
utils.invoices.list.invalidate();
|
||||
} catch (error: any) {
|
||||
toast.error(error.message || "Erreur lors de la suppression");
|
||||
}
|
||||
}
|
||||
}}
|
||||
disabled={selectedIds.length === 0}
|
||||
variant="destructive"
|
||||
>
|
||||
<Trash2 className="w-4 h-4 mr-2" />
|
||||
Supprimer ({selectedIds.length})
|
||||
</Button>
|
||||
<Button onClick={() => setLocation("/upload")}>
|
||||
<FileText className="w-4 h-4 mr-2" />
|
||||
Importer
|
||||
|
||||
Reference in New Issue
Block a user