feat: autoriser la suppression quand seuls les champs personnalisés restent

This commit is contained in:
Matthieu
2025-10-24 15:50:09 +02:00
parent b9c9b2c421
commit 4db64351b7
2 changed files with 44 additions and 18 deletions

View File

@@ -138,18 +138,31 @@ export class ComposantsService {
`${documentsCount} document${documentsCount > 1 ? 's' : ''}`, `${documentsCount} document${documentsCount > 1 ? 's' : ''}`,
); );
} }
if (customFieldValuesCount > 0) {
blockingReasons.push( if (blockingReasons.length > 0) {
`${customFieldValuesCount} valeur${customFieldValuesCount > 1 ? 's' : ''} de champ personnalisé`, const messageParts = [
`Impossible de supprimer ce composant car il possède encore: ${blockingReasons.join(
', ',
)}.`,
];
if (customFieldValuesCount > 0) {
messageParts.push(
`Les ${customFieldValuesCount} valeur${
customFieldValuesCount > 1 ? 's' : ''
} de champ personnalisé seront supprimées automatiquement une fois ces éléments détachés.`,
);
}
throw new ConflictException(
`${messageParts.join(' ')} Supprimez ou détachez les éléments indiqués avant de réessayer.`,
); );
} }
if (blockingReasons.length > 0) { if (customFieldValuesCount > 0) {
throw new ConflictException( await this.prisma.customFieldValue.deleteMany({
`Impossible de supprimer ce composant car il possède encore: ${blockingReasons.join( where: { composantId: id },
', ', });
)}. Supprimez ou détachez ces éléments avant de réessayer.`,
);
} }
return this.prisma.composant.delete({ return this.prisma.composant.delete({

View File

@@ -162,18 +162,31 @@ export class PiecesService {
`${documentsCount} document${documentsCount > 1 ? 's' : ''}`, `${documentsCount} document${documentsCount > 1 ? 's' : ''}`,
); );
} }
if (customFieldValuesCount > 0) {
blockingReasons.push( if (blockingReasons.length > 0) {
`${customFieldValuesCount} valeur${customFieldValuesCount > 1 ? 's' : ''} de champ personnalisé`, const messageParts = [
`Impossible de supprimer cette pièce car elle possède encore: ${blockingReasons.join(
', ',
)}.`,
];
if (customFieldValuesCount > 0) {
messageParts.push(
`Les ${customFieldValuesCount} valeur${
customFieldValuesCount > 1 ? 's' : ''
} de champ personnalisé seront supprimées automatiquement une fois ces éléments détachés.`,
);
}
throw new ConflictException(
`${messageParts.join(' ')} Supprimez ou détachez les éléments indiqués avant de réessayer.`,
); );
} }
if (blockingReasons.length > 0) { if (customFieldValuesCount > 0) {
throw new ConflictException( await this.prisma.customFieldValue.deleteMany({
`Impossible de supprimer cette pièce car elle possède encore: ${blockingReasons.join( where: { pieceId: id },
', ', });
)}. Supprimez ou détachez ces éléments avant de réessayer.`,
);
} }
return this.prisma.piece.delete({ return this.prisma.piece.delete({