FIx: delete champs par default
This commit is contained in:
@@ -0,0 +1,3 @@
|
|||||||
|
ALTER TABLE "machines" DROP COLUMN IF EXISTS "emplacement";
|
||||||
|
ALTER TABLE "composants" DROP COLUMN IF EXISTS "emplacement";
|
||||||
|
ALTER TABLE "pieces" DROP COLUMN IF EXISTS "emplacement";
|
||||||
@@ -52,13 +52,12 @@ model TypeMachine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model Machine {
|
model Machine {
|
||||||
id String @id @default(cuid())
|
id String @id @default(cuid())
|
||||||
name String
|
name String
|
||||||
reference String?
|
reference String?
|
||||||
prix Decimal? @db.Decimal(10, 2)
|
prix Decimal? @db.Decimal(10, 2)
|
||||||
emplacement String?
|
createdAt DateTime @default(now())
|
||||||
createdAt DateTime @default(now())
|
updatedAt DateTime @updatedAt
|
||||||
updatedAt DateTime @updatedAt
|
|
||||||
|
|
||||||
// Relations
|
// Relations
|
||||||
siteId String
|
siteId String
|
||||||
@@ -79,13 +78,12 @@ model Machine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model Composant {
|
model Composant {
|
||||||
id String @id @default(cuid())
|
id String @id @default(cuid())
|
||||||
name String
|
name String
|
||||||
reference String?
|
reference String?
|
||||||
prix Decimal? @db.Decimal(10, 2)
|
prix Decimal? @db.Decimal(10, 2)
|
||||||
emplacement String?
|
createdAt DateTime @default(now())
|
||||||
createdAt DateTime @default(now())
|
updatedAt DateTime @updatedAt
|
||||||
updatedAt DateTime @updatedAt
|
|
||||||
|
|
||||||
// Relations hiérarchiques
|
// Relations hiérarchiques
|
||||||
machineId String?
|
machineId String?
|
||||||
@@ -115,13 +113,12 @@ model Composant {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model Piece {
|
model Piece {
|
||||||
id String @id @default(cuid())
|
id String @id @default(cuid())
|
||||||
name String
|
name String
|
||||||
reference String?
|
reference String?
|
||||||
prix Decimal? @db.Decimal(10, 2)
|
prix Decimal? @db.Decimal(10, 2)
|
||||||
emplacement String?
|
createdAt DateTime @default(now())
|
||||||
createdAt DateTime @default(now())
|
updatedAt DateTime @updatedAt
|
||||||
updatedAt DateTime @updatedAt
|
|
||||||
|
|
||||||
// Relations
|
// Relations
|
||||||
machineId String?
|
machineId String?
|
||||||
|
|||||||
@@ -9,8 +9,16 @@ import {
|
|||||||
MachinePieceSelectionDto,
|
MachinePieceSelectionDto,
|
||||||
} from '../shared/dto/machine.dto';
|
} from '../shared/dto/machine.dto';
|
||||||
|
|
||||||
|
const CUSTOM_FIELD_SELECT = {
|
||||||
|
id: true,
|
||||||
|
name: true,
|
||||||
|
type: true,
|
||||||
|
required: true,
|
||||||
|
options: true,
|
||||||
|
} as const;
|
||||||
|
|
||||||
const TYPE_MACHINE_CONFIGURATION_INCLUDE = {
|
const TYPE_MACHINE_CONFIGURATION_INCLUDE = {
|
||||||
customFields: true,
|
customFields: { select: CUSTOM_FIELD_SELECT },
|
||||||
componentRequirements: {
|
componentRequirements: {
|
||||||
include: {
|
include: {
|
||||||
typeComposant: true,
|
typeComposant: true,
|
||||||
@@ -41,7 +49,7 @@ const MACHINE_DEFAULT_INCLUDE = {
|
|||||||
sousComposants: true,
|
sousComposants: true,
|
||||||
customFieldValues: {
|
customFieldValues: {
|
||||||
include: {
|
include: {
|
||||||
customField: true,
|
customField: { select: CUSTOM_FIELD_SELECT },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
constructeur: true,
|
constructeur: true,
|
||||||
@@ -49,7 +57,7 @@ const MACHINE_DEFAULT_INCLUDE = {
|
|||||||
include: {
|
include: {
|
||||||
customFieldValues: {
|
customFieldValues: {
|
||||||
include: {
|
include: {
|
||||||
customField: true,
|
customField: { select: CUSTOM_FIELD_SELECT },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
constructeur: true,
|
constructeur: true,
|
||||||
@@ -67,7 +75,7 @@ const MACHINE_DEFAULT_INCLUDE = {
|
|||||||
include: {
|
include: {
|
||||||
customFieldValues: {
|
customFieldValues: {
|
||||||
include: {
|
include: {
|
||||||
customField: true,
|
customField: { select: CUSTOM_FIELD_SELECT },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
constructeur: true,
|
constructeur: true,
|
||||||
@@ -81,7 +89,7 @@ const MACHINE_DEFAULT_INCLUDE = {
|
|||||||
},
|
},
|
||||||
customFieldValues: {
|
customFieldValues: {
|
||||||
include: {
|
include: {
|
||||||
customField: true,
|
customField: { select: CUSTOM_FIELD_SELECT },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
documents: true,
|
documents: true,
|
||||||
@@ -472,6 +480,19 @@ export class MachinesService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private extractCustomFieldValue(field: any): string | undefined {
|
||||||
|
if (
|
||||||
|
field &&
|
||||||
|
Object.prototype.hasOwnProperty.call(field, 'value')
|
||||||
|
) {
|
||||||
|
const rawValue = field.value;
|
||||||
|
return rawValue === undefined || rawValue === null
|
||||||
|
? ''
|
||||||
|
: String(rawValue);
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
private normalizeComponentSelection(
|
private normalizeComponentSelection(
|
||||||
selection: MachineComponentSelectionDto,
|
selection: MachineComponentSelectionDto,
|
||||||
requirement: any,
|
requirement: any,
|
||||||
@@ -491,8 +512,6 @@ export class MachinesService {
|
|||||||
'Composant';
|
'Composant';
|
||||||
prepared.reference =
|
prepared.reference =
|
||||||
prepared.reference ?? model?.structure?.reference ?? '';
|
prepared.reference ?? model?.structure?.reference ?? '';
|
||||||
prepared.emplacement =
|
|
||||||
prepared.emplacement ?? model?.structure?.emplacement ?? '';
|
|
||||||
prepared.prix = prepared.prix ?? model?.structure?.prix ?? null;
|
prepared.prix = prepared.prix ?? model?.structure?.prix ?? null;
|
||||||
|
|
||||||
prepared.customFields = Array.isArray(prepared.customFields)
|
prepared.customFields = Array.isArray(prepared.customFields)
|
||||||
@@ -565,6 +584,14 @@ export class MachinesService {
|
|||||||
const customFields = Array.isArray(component.customFields)
|
const customFields = Array.isArray(component.customFields)
|
||||||
? component.customFields
|
? component.customFields
|
||||||
: [];
|
: [];
|
||||||
|
const componentFieldMap = new Map(
|
||||||
|
customFields
|
||||||
|
.filter((field) => field && typeof field.name === 'string')
|
||||||
|
.map((field) => [field.name, field]),
|
||||||
|
);
|
||||||
|
const resolveComponentValue = (fieldName: string) =>
|
||||||
|
this.extractCustomFieldValue(componentFieldMap.get(fieldName));
|
||||||
|
|
||||||
const componentPieces = Array.isArray(component.pieces)
|
const componentPieces = Array.isArray(component.pieces)
|
||||||
? component.pieces
|
? component.pieces
|
||||||
: [];
|
: [];
|
||||||
@@ -582,7 +609,7 @@ export class MachinesService {
|
|||||||
|
|
||||||
let typeComposantId: string | null = providedTypeComposantId ?? null;
|
let typeComposantId: string | null = providedTypeComposantId ?? null;
|
||||||
|
|
||||||
if (!typeComposantId && customFields.length > 0) {
|
if (!typeComposantId && componentFieldMap.size > 0) {
|
||||||
let typeComposant = await prisma.modelType.findFirst({
|
let typeComposant = await prisma.modelType.findFirst({
|
||||||
where: {
|
where: {
|
||||||
name: component.name,
|
name: component.name,
|
||||||
@@ -604,12 +631,12 @@ export class MachinesService {
|
|||||||
});
|
});
|
||||||
|
|
||||||
for (const customField of customFields) {
|
for (const customField of customFields) {
|
||||||
|
if (!customField?.name) continue;
|
||||||
await prisma.customField.create({
|
await prisma.customField.create({
|
||||||
data: {
|
data: {
|
||||||
name: customField.name,
|
name: customField.name,
|
||||||
type: customField.type,
|
type: customField.type,
|
||||||
required: customField.required || false,
|
required: customField.required || false,
|
||||||
defaultValue: customField.defaultValue,
|
|
||||||
options: customField.options || [],
|
options: customField.options || [],
|
||||||
typeComposantId: typeComposant.id,
|
typeComposantId: typeComposant.id,
|
||||||
},
|
},
|
||||||
@@ -628,7 +655,6 @@ export class MachinesService {
|
|||||||
prisma,
|
prisma,
|
||||||
component.constructeur,
|
component.constructeur,
|
||||||
),
|
),
|
||||||
emplacement: component.emplacement || '',
|
|
||||||
prix: component.prix ?? null,
|
prix: component.prix ?? null,
|
||||||
machineId,
|
machineId,
|
||||||
parentComposantId,
|
parentComposantId,
|
||||||
@@ -644,16 +670,16 @@ export class MachinesService {
|
|||||||
});
|
});
|
||||||
|
|
||||||
for (const customField of typeCustomFields) {
|
for (const customField of typeCustomFields) {
|
||||||
const defaultValue =
|
const providedValue = resolveComponentValue(customField.name);
|
||||||
customFields.find((cf) => cf.name === customField.name)
|
if (providedValue !== undefined) {
|
||||||
?.defaultValue || '';
|
await prisma.customFieldValue.create({
|
||||||
await prisma.customFieldValue.create({
|
data: {
|
||||||
data: {
|
value: providedValue,
|
||||||
value: defaultValue,
|
customFieldId: customField.id,
|
||||||
customFieldId: customField.id,
|
composantId: createdComposant.id,
|
||||||
composantId: createdComposant.id,
|
},
|
||||||
},
|
});
|
||||||
});
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -663,6 +689,13 @@ export class MachinesService {
|
|||||||
const pieceCustomFields = Array.isArray(piece.customFields)
|
const pieceCustomFields = Array.isArray(piece.customFields)
|
||||||
? piece.customFields
|
? piece.customFields
|
||||||
: [];
|
: [];
|
||||||
|
const pieceFieldMap = new Map(
|
||||||
|
pieceCustomFields
|
||||||
|
.filter((field) => field && typeof field.name === 'string')
|
||||||
|
.map((field) => [field.name, field]),
|
||||||
|
);
|
||||||
|
const resolvePieceValue = (fieldName: string) =>
|
||||||
|
this.extractCustomFieldValue(pieceFieldMap.get(fieldName));
|
||||||
const pieceModelId = piece.__pieceModelId ?? null;
|
const pieceModelId = piece.__pieceModelId ?? null;
|
||||||
const pieceRequirementId = piece.__requirementId ?? null;
|
const pieceRequirementId = piece.__requirementId ?? null;
|
||||||
const providedTypePieceId =
|
const providedTypePieceId =
|
||||||
@@ -671,7 +704,7 @@ export class MachinesService {
|
|||||||
|
|
||||||
let typePieceId: string | null = providedTypePieceId ?? null;
|
let typePieceId: string | null = providedTypePieceId ?? null;
|
||||||
|
|
||||||
if (!typePieceId && pieceCustomFields.length > 0) {
|
if (!typePieceId && pieceFieldMap.size > 0) {
|
||||||
let typePiece = await prisma.typePiece.findFirst({
|
let typePiece = await prisma.typePiece.findFirst({
|
||||||
where: { name: piece.name },
|
where: { name: piece.name },
|
||||||
});
|
});
|
||||||
@@ -685,12 +718,12 @@ export class MachinesService {
|
|||||||
});
|
});
|
||||||
|
|
||||||
for (const customField of pieceCustomFields) {
|
for (const customField of pieceCustomFields) {
|
||||||
|
if (!customField?.name) continue;
|
||||||
await prisma.customField.create({
|
await prisma.customField.create({
|
||||||
data: {
|
data: {
|
||||||
name: customField.name,
|
name: customField.name,
|
||||||
type: customField.type,
|
type: customField.type,
|
||||||
required: customField.required || false,
|
required: customField.required || false,
|
||||||
defaultValue: customField.defaultValue,
|
|
||||||
options: customField.options || [],
|
options: customField.options || [],
|
||||||
typePieceId: typePiece.id,
|
typePieceId: typePiece.id,
|
||||||
},
|
},
|
||||||
@@ -709,7 +742,6 @@ export class MachinesService {
|
|||||||
prisma,
|
prisma,
|
||||||
piece.constructeur,
|
piece.constructeur,
|
||||||
),
|
),
|
||||||
emplacement: piece.emplacement || '',
|
|
||||||
prix: piece.prix ?? null,
|
prix: piece.prix ?? null,
|
||||||
composantId: createdComposant.id,
|
composantId: createdComposant.id,
|
||||||
typePieceId,
|
typePieceId,
|
||||||
@@ -724,16 +756,16 @@ export class MachinesService {
|
|||||||
});
|
});
|
||||||
|
|
||||||
for (const customField of typePieceCustomFields) {
|
for (const customField of typePieceCustomFields) {
|
||||||
const defaultValue =
|
const providedValue = resolvePieceValue(customField.name);
|
||||||
pieceCustomFields.find((cf) => cf.name === customField.name)
|
if (providedValue !== undefined) {
|
||||||
?.defaultValue || '';
|
await prisma.customFieldValue.create({
|
||||||
await prisma.customFieldValue.create({
|
data: {
|
||||||
data: {
|
value: providedValue,
|
||||||
value: defaultValue,
|
customFieldId: customField.id,
|
||||||
customFieldId: customField.id,
|
pieceId: createdPiece.id,
|
||||||
pieceId: createdPiece.id,
|
},
|
||||||
},
|
});
|
||||||
});
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -760,6 +792,13 @@ export class MachinesService {
|
|||||||
const customFields = Array.isArray(piece.customFields)
|
const customFields = Array.isArray(piece.customFields)
|
||||||
? piece.customFields
|
? piece.customFields
|
||||||
: [];
|
: [];
|
||||||
|
const fieldMap = new Map(
|
||||||
|
customFields
|
||||||
|
.filter((field) => field && typeof field.name === 'string')
|
||||||
|
.map((field) => [field.name, field]),
|
||||||
|
);
|
||||||
|
const resolveProvidedValue = (fieldName: string) =>
|
||||||
|
this.extractCustomFieldValue(fieldMap.get(fieldName));
|
||||||
const pieceModelId = piece.__pieceModelId ?? null;
|
const pieceModelId = piece.__pieceModelId ?? null;
|
||||||
const requirementId = piece.__requirementId ?? null;
|
const requirementId = piece.__requirementId ?? null;
|
||||||
const providedTypePieceId =
|
const providedTypePieceId =
|
||||||
@@ -768,7 +807,7 @@ export class MachinesService {
|
|||||||
|
|
||||||
let typePieceId: string | null = providedTypePieceId ?? null;
|
let typePieceId: string | null = providedTypePieceId ?? null;
|
||||||
|
|
||||||
if (!typePieceId && customFields.length > 0) {
|
if (!typePieceId && fieldMap.size > 0) {
|
||||||
let typePiece = await prisma.typePiece.findFirst({
|
let typePiece = await prisma.typePiece.findFirst({
|
||||||
where: { name: piece.name },
|
where: { name: piece.name },
|
||||||
});
|
});
|
||||||
@@ -782,12 +821,12 @@ export class MachinesService {
|
|||||||
});
|
});
|
||||||
|
|
||||||
for (const customField of customFields) {
|
for (const customField of customFields) {
|
||||||
|
if (!customField?.name) continue;
|
||||||
await prisma.customField.create({
|
await prisma.customField.create({
|
||||||
data: {
|
data: {
|
||||||
name: customField.name,
|
name: customField.name,
|
||||||
type: customField.type,
|
type: customField.type,
|
||||||
required: customField.required || false,
|
required: customField.required || false,
|
||||||
defaultValue: customField.defaultValue,
|
|
||||||
options: customField.options || [],
|
options: customField.options || [],
|
||||||
typePieceId: typePiece.id,
|
typePieceId: typePiece.id,
|
||||||
},
|
},
|
||||||
@@ -806,7 +845,6 @@ export class MachinesService {
|
|||||||
prisma,
|
prisma,
|
||||||
piece.constructeur,
|
piece.constructeur,
|
||||||
),
|
),
|
||||||
emplacement: piece.emplacement || '',
|
|
||||||
prix: piece.prix ?? null,
|
prix: piece.prix ?? null,
|
||||||
machineId,
|
machineId,
|
||||||
typePieceId,
|
typePieceId,
|
||||||
@@ -821,37 +859,40 @@ export class MachinesService {
|
|||||||
});
|
});
|
||||||
|
|
||||||
for (const customField of typePieceCustomFields) {
|
for (const customField of typePieceCustomFields) {
|
||||||
const defaultValue =
|
const providedValue = resolveProvidedValue(customField.name);
|
||||||
customFields.find((cf) => cf.name === customField.name)
|
if (providedValue !== undefined) {
|
||||||
?.defaultValue || '';
|
await prisma.customFieldValue.create({
|
||||||
await prisma.customFieldValue.create({
|
data: {
|
||||||
data: {
|
value: providedValue,
|
||||||
value: defaultValue,
|
customFieldId: customField.id,
|
||||||
customFieldId: customField.id,
|
pieceId: createdPiece.id,
|
||||||
pieceId: createdPiece.id,
|
},
|
||||||
},
|
});
|
||||||
});
|
}
|
||||||
}
|
}
|
||||||
} else if (customFields.length > 0) {
|
} else if (fieldMap.size > 0) {
|
||||||
for (const customField of customFields) {
|
for (const customField of customFields) {
|
||||||
|
if (!customField?.name) continue;
|
||||||
const createdCustomField = await prisma.customField.create({
|
const createdCustomField = await prisma.customField.create({
|
||||||
data: {
|
data: {
|
||||||
name: customField.name,
|
name: customField.name,
|
||||||
type: customField.type,
|
type: customField.type,
|
||||||
required: customField.required || false,
|
required: customField.required || false,
|
||||||
defaultValue: customField.defaultValue,
|
|
||||||
options: customField.options || [],
|
options: customField.options || [],
|
||||||
typePieceId: null,
|
typePieceId: null,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
await prisma.customFieldValue.create({
|
const providedValue = this.extractCustomFieldValue(customField);
|
||||||
data: {
|
if (providedValue !== undefined) {
|
||||||
value: customField.defaultValue || '',
|
await prisma.customFieldValue.create({
|
||||||
customFieldId: createdCustomField.id,
|
data: {
|
||||||
pieceId: createdPiece.id,
|
value: providedValue,
|
||||||
},
|
customFieldId: createdCustomField.id,
|
||||||
});
|
pieceId: createdPiece.id,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -865,26 +906,26 @@ export class MachinesService {
|
|||||||
for (const customField of machineCustomFields) {
|
for (const customField of machineCustomFields) {
|
||||||
if (!customField || !customField.name) continue;
|
if (!customField || !customField.name) continue;
|
||||||
|
|
||||||
// Créer le champ personnalisé pour la machine
|
|
||||||
const createdCustomField = await prisma.customField.create({
|
const createdCustomField = await prisma.customField.create({
|
||||||
data: {
|
data: {
|
||||||
name: customField.name,
|
name: customField.name,
|
||||||
type: customField.type,
|
type: customField.type,
|
||||||
required: customField.required || false,
|
required: customField.required || false,
|
||||||
defaultValue: customField.defaultValue,
|
|
||||||
options: customField.options || [],
|
options: customField.options || [],
|
||||||
typeMachineId: null, // Ce champ sera lié à la machine individuelle
|
typeMachineId: null, // Ce champ sera lié à la machine individuelle
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// Créer la valeur par défaut pour la machine
|
const providedValue = this.extractCustomFieldValue(customField);
|
||||||
await prisma.customFieldValue.create({
|
if (providedValue !== undefined) {
|
||||||
data: {
|
await prisma.customFieldValue.create({
|
||||||
value: customField.defaultValue || '',
|
data: {
|
||||||
customFieldId: createdCustomField.id,
|
value: providedValue,
|
||||||
machineId: machineId,
|
customFieldId: createdCustomField.id,
|
||||||
},
|
machineId,
|
||||||
});
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1160,7 +1201,7 @@ export class MachinesService {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
include: {
|
include: {
|
||||||
customField: true,
|
customField: { select: CUSTOM_FIELD_SELECT },
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1171,20 +1212,21 @@ export class MachinesService {
|
|||||||
name: customField.name,
|
name: customField.name,
|
||||||
type: customField.type,
|
type: customField.type,
|
||||||
required: customField.required || false,
|
required: customField.required || false,
|
||||||
defaultValue: customField.defaultValue,
|
|
||||||
options: customField.options || [],
|
options: customField.options || [],
|
||||||
typeMachineId: null, // Ce champ sera lié à la machine individuelle
|
typeMachineId: null, // Ce champ sera lié à la machine individuelle
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// Créer la valeur par défaut pour la machine
|
const providedValue = this.extractCustomFieldValue(customField);
|
||||||
await this.prisma.customFieldValue.create({
|
if (providedValue !== undefined) {
|
||||||
data: {
|
await this.prisma.customFieldValue.create({
|
||||||
value: customField.defaultValue || '',
|
data: {
|
||||||
customFieldId: createdCustomField.id,
|
value: providedValue,
|
||||||
machineId: machineId,
|
customFieldId: createdCustomField.id,
|
||||||
},
|
machineId,
|
||||||
});
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1199,6 +1241,15 @@ export class MachinesService {
|
|||||||
typeComponent.customFields &&
|
typeComponent.customFields &&
|
||||||
typeComponent.customFields.length > 0
|
typeComponent.customFields.length > 0
|
||||||
) {
|
) {
|
||||||
|
const typeComponentFields = Array.isArray(typeComponent.customFields)
|
||||||
|
? typeComponent.customFields
|
||||||
|
: [];
|
||||||
|
const typeComponentFieldMap = new Map(
|
||||||
|
typeComponentFields
|
||||||
|
.filter((field: any) => field && typeof field.name === 'string')
|
||||||
|
.map((field: any) => [field.name, field]),
|
||||||
|
);
|
||||||
|
|
||||||
// Créer le type de composant s'il n'existe pas
|
// Créer le type de composant s'il n'existe pas
|
||||||
let typeComposant = await this.prisma.modelType.findFirst({
|
let typeComposant = await this.prisma.modelType.findFirst({
|
||||||
where: {
|
where: {
|
||||||
@@ -1222,7 +1273,7 @@ export class MachinesService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Créer les champs personnalisés pour le type de composant
|
// Créer les champs personnalisés pour le type de composant
|
||||||
for (const customField of typeComponent.customFields) {
|
for (const customField of typeComponentFields) {
|
||||||
const existingField = await this.prisma.customField.findFirst({
|
const existingField = await this.prisma.customField.findFirst({
|
||||||
where: {
|
where: {
|
||||||
name: customField.name,
|
name: customField.name,
|
||||||
@@ -1236,7 +1287,6 @@ export class MachinesService {
|
|||||||
name: customField.name,
|
name: customField.name,
|
||||||
type: customField.type,
|
type: customField.type,
|
||||||
required: customField.required || false,
|
required: customField.required || false,
|
||||||
defaultValue: customField.defaultValue,
|
|
||||||
options: customField.options || [],
|
options: customField.options || [],
|
||||||
typeComposantId: typeComposant.id,
|
typeComposantId: typeComposant.id,
|
||||||
},
|
},
|
||||||
@@ -1264,17 +1314,18 @@ export class MachinesService {
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (!existingValue) {
|
if (!existingValue) {
|
||||||
const defaultValue =
|
const providedValue = this.extractCustomFieldValue(
|
||||||
typeComponent.customFields.find(
|
typeComponentFieldMap.get(customField.name),
|
||||||
(cf: any) => cf.name === customField.name,
|
);
|
||||||
)?.defaultValue || '';
|
if (providedValue !== undefined) {
|
||||||
await this.prisma.customFieldValue.create({
|
await this.prisma.customFieldValue.create({
|
||||||
data: {
|
data: {
|
||||||
value: defaultValue,
|
value: providedValue,
|
||||||
customFieldId: customField.id,
|
customFieldId: customField.id,
|
||||||
composantId: component.id,
|
composantId: component.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1288,6 +1339,15 @@ export class MachinesService {
|
|||||||
typePiece.customFields &&
|
typePiece.customFields &&
|
||||||
typePiece.customFields.length > 0
|
typePiece.customFields.length > 0
|
||||||
) {
|
) {
|
||||||
|
const typePieceFields = Array.isArray(typePiece.customFields)
|
||||||
|
? typePiece.customFields
|
||||||
|
: [];
|
||||||
|
const typePieceFieldMap = new Map(
|
||||||
|
typePieceFields
|
||||||
|
.filter((field: any) => field && typeof field.name === 'string')
|
||||||
|
.map((field: any) => [field.name, field]),
|
||||||
|
);
|
||||||
|
|
||||||
// Créer le type de pièce s'il n'existe pas
|
// Créer le type de pièce s'il n'existe pas
|
||||||
let typePieceEntity = await this.prisma.modelType.findFirst({
|
let typePieceEntity = await this.prisma.modelType.findFirst({
|
||||||
where: {
|
where: {
|
||||||
@@ -1312,7 +1372,7 @@ export class MachinesService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Créer les champs personnalisés pour le type de pièce
|
// Créer les champs personnalisés pour le type de pièce
|
||||||
for (const customField of typePiece.customFields) {
|
for (const customField of typePieceFields) {
|
||||||
const existingField = await this.prisma.customField.findFirst({
|
const existingField = await this.prisma.customField.findFirst({
|
||||||
where: {
|
where: {
|
||||||
name: customField.name,
|
name: customField.name,
|
||||||
@@ -1326,7 +1386,6 @@ export class MachinesService {
|
|||||||
name: customField.name,
|
name: customField.name,
|
||||||
type: customField.type,
|
type: customField.type,
|
||||||
required: customField.required || false,
|
required: customField.required || false,
|
||||||
defaultValue: customField.defaultValue,
|
|
||||||
options: customField.options || [],
|
options: customField.options || [],
|
||||||
typePieceId: typePieceEntity.id,
|
typePieceId: typePieceEntity.id,
|
||||||
},
|
},
|
||||||
@@ -1355,17 +1414,18 @@ export class MachinesService {
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (!existingValue) {
|
if (!existingValue) {
|
||||||
const defaultValue =
|
const providedValue = this.extractCustomFieldValue(
|
||||||
typePiece.customFields.find(
|
typePieceFieldMap.get(customField.name),
|
||||||
(cf: any) => cf.name === customField.name,
|
);
|
||||||
)?.defaultValue || '';
|
if (providedValue !== undefined) {
|
||||||
await this.prisma.customFieldValue.create({
|
await this.prisma.customFieldValue.create({
|
||||||
data: {
|
data: {
|
||||||
value: defaultValue,
|
value: providedValue,
|
||||||
customFieldId: customField.id,
|
customFieldId: customField.id,
|
||||||
pieceId: piece.id,
|
pieceId: piece.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1381,6 +1441,15 @@ export class MachinesService {
|
|||||||
typePiece.customFields &&
|
typePiece.customFields &&
|
||||||
typePiece.customFields.length > 0
|
typePiece.customFields.length > 0
|
||||||
) {
|
) {
|
||||||
|
const typePieceFields = Array.isArray(typePiece.customFields)
|
||||||
|
? typePiece.customFields
|
||||||
|
: [];
|
||||||
|
const typePieceFieldMap = new Map(
|
||||||
|
typePieceFields
|
||||||
|
.filter((field: any) => field && typeof field.name === 'string')
|
||||||
|
.map((field: any) => [field.name, field]),
|
||||||
|
);
|
||||||
|
|
||||||
// Créer le type de pièce s'il n'existe pas
|
// Créer le type de pièce s'il n'existe pas
|
||||||
let typePieceEntity = await this.prisma.modelType.findFirst({
|
let typePieceEntity = await this.prisma.modelType.findFirst({
|
||||||
where: {
|
where: {
|
||||||
@@ -1405,7 +1474,7 @@ export class MachinesService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Créer les champs personnalisés pour le type de pièce
|
// Créer les champs personnalisés pour le type de pièce
|
||||||
for (const customField of typePiece.customFields) {
|
for (const customField of typePieceFields) {
|
||||||
const existingField = await this.prisma.customField.findFirst({
|
const existingField = await this.prisma.customField.findFirst({
|
||||||
where: {
|
where: {
|
||||||
name: customField.name,
|
name: customField.name,
|
||||||
@@ -1419,7 +1488,6 @@ export class MachinesService {
|
|||||||
name: customField.name,
|
name: customField.name,
|
||||||
type: customField.type,
|
type: customField.type,
|
||||||
required: customField.required || false,
|
required: customField.required || false,
|
||||||
defaultValue: customField.defaultValue,
|
|
||||||
options: customField.options || [],
|
options: customField.options || [],
|
||||||
typePieceId: typePieceEntity.id,
|
typePieceId: typePieceEntity.id,
|
||||||
},
|
},
|
||||||
@@ -1447,17 +1515,18 @@ export class MachinesService {
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (!existingValue) {
|
if (!existingValue) {
|
||||||
const defaultValue =
|
const providedValue = this.extractCustomFieldValue(
|
||||||
typePiece.customFields.find(
|
typePieceFieldMap.get(customField.name),
|
||||||
(cf: any) => cf.name === customField.name,
|
);
|
||||||
)?.defaultValue || '';
|
if (providedValue !== undefined) {
|
||||||
await this.prisma.customFieldValue.create({
|
await this.prisma.customFieldValue.create({
|
||||||
data: {
|
data: {
|
||||||
value: defaultValue,
|
value: providedValue,
|
||||||
customFieldId: customField.id,
|
customFieldId: customField.id,
|
||||||
pieceId: piece.id,
|
pieceId: piece.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,10 +26,6 @@ export class CreateComposantDto {
|
|||||||
@IsNumber({}, { message: 'prix must be a valid number' })
|
@IsNumber({}, { message: 'prix must be a valid number' })
|
||||||
prix?: number | null;
|
prix?: number | null;
|
||||||
|
|
||||||
@IsOptional()
|
|
||||||
@IsString()
|
|
||||||
emplacement?: string;
|
|
||||||
|
|
||||||
@IsOptional()
|
@IsOptional()
|
||||||
@IsString()
|
@IsString()
|
||||||
typeComposantId?: string;
|
typeComposantId?: string;
|
||||||
@@ -60,10 +56,6 @@ export class UpdateComposantDto {
|
|||||||
@IsNumber({}, { message: 'prix must be a valid number' })
|
@IsNumber({}, { message: 'prix must be a valid number' })
|
||||||
prix?: number | null;
|
prix?: number | null;
|
||||||
|
|
||||||
@IsOptional()
|
|
||||||
@IsString()
|
|
||||||
emplacement?: string;
|
|
||||||
|
|
||||||
@IsOptional()
|
@IsOptional()
|
||||||
@IsString()
|
@IsString()
|
||||||
typeComposantId?: string;
|
typeComposantId?: string;
|
||||||
|
|||||||
@@ -41,10 +41,6 @@ export class CreateMachineDto {
|
|||||||
@IsDecimal()
|
@IsDecimal()
|
||||||
prix?: string;
|
prix?: string;
|
||||||
|
|
||||||
@IsOptional()
|
|
||||||
@IsString()
|
|
||||||
emplacement?: string;
|
|
||||||
|
|
||||||
@IsOptional()
|
@IsOptional()
|
||||||
@IsString()
|
@IsString()
|
||||||
typeMachineId?: string;
|
typeMachineId?: string;
|
||||||
@@ -79,10 +75,6 @@ export class UpdateMachineDto {
|
|||||||
@IsDecimal()
|
@IsDecimal()
|
||||||
prix?: string;
|
prix?: string;
|
||||||
|
|
||||||
@IsOptional()
|
|
||||||
@IsString()
|
|
||||||
emplacement?: string;
|
|
||||||
|
|
||||||
@IsOptional()
|
@IsOptional()
|
||||||
@IsString()
|
@IsString()
|
||||||
typeMachineId?: string;
|
typeMachineId?: string;
|
||||||
|
|||||||
@@ -26,10 +26,6 @@ export class CreatePieceDto {
|
|||||||
@IsNumber({}, { message: 'prix must be a valid number' })
|
@IsNumber({}, { message: 'prix must be a valid number' })
|
||||||
prix?: number | null;
|
prix?: number | null;
|
||||||
|
|
||||||
@IsOptional()
|
|
||||||
@IsString()
|
|
||||||
emplacement?: string;
|
|
||||||
|
|
||||||
@IsOptional()
|
@IsOptional()
|
||||||
@IsString()
|
@IsString()
|
||||||
typePieceId?: string;
|
typePieceId?: string;
|
||||||
@@ -60,10 +56,6 @@ export class UpdatePieceDto {
|
|||||||
@IsNumber({}, { message: 'prix must be a valid number' })
|
@IsNumber({}, { message: 'prix must be a valid number' })
|
||||||
prix?: number | null;
|
prix?: number | null;
|
||||||
|
|
||||||
@IsOptional()
|
|
||||||
@IsString()
|
|
||||||
emplacement?: string;
|
|
||||||
|
|
||||||
@IsOptional()
|
@IsOptional()
|
||||||
@IsString()
|
@IsString()
|
||||||
typePieceId?: string;
|
typePieceId?: string;
|
||||||
|
|||||||
@@ -29,10 +29,6 @@ export class CreateCustomFieldDto {
|
|||||||
@IsBoolean()
|
@IsBoolean()
|
||||||
required?: boolean;
|
required?: boolean;
|
||||||
|
|
||||||
@IsOptional()
|
|
||||||
@IsString()
|
|
||||||
defaultValue?: string;
|
|
||||||
|
|
||||||
@IsOptional()
|
@IsOptional()
|
||||||
@IsArray()
|
@IsArray()
|
||||||
options?: string[]; // Pour les champs de type SELECT
|
options?: string[]; // Pour les champs de type SELECT
|
||||||
@@ -51,10 +47,6 @@ export class UpdateCustomFieldDto {
|
|||||||
@IsBoolean()
|
@IsBoolean()
|
||||||
required?: boolean;
|
required?: boolean;
|
||||||
|
|
||||||
@IsOptional()
|
|
||||||
@IsString()
|
|
||||||
defaultValue?: string;
|
|
||||||
|
|
||||||
@IsOptional()
|
@IsOptional()
|
||||||
@IsArray()
|
@IsArray()
|
||||||
options?: string[];
|
options?: string[];
|
||||||
|
|||||||
@@ -14,6 +14,14 @@ import {
|
|||||||
UpdatePieceModelDto,
|
UpdatePieceModelDto,
|
||||||
} from '../shared/dto/type.dto';
|
} from '../shared/dto/type.dto';
|
||||||
|
|
||||||
|
const CUSTOM_FIELD_SELECT = {
|
||||||
|
id: true,
|
||||||
|
name: true,
|
||||||
|
type: true,
|
||||||
|
required: true,
|
||||||
|
options: true,
|
||||||
|
} as const;
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class TypesService {
|
export class TypesService {
|
||||||
constructor(private prisma: PrismaService) {}
|
constructor(private prisma: PrismaService) {}
|
||||||
@@ -63,7 +71,6 @@ export class TypesService {
|
|||||||
name: field.name,
|
name: field.name,
|
||||||
type: field.type,
|
type: field.type,
|
||||||
required: field.required || false,
|
required: field.required || false,
|
||||||
defaultValue: field.defaultValue,
|
|
||||||
options: field.options,
|
options: field.options,
|
||||||
})),
|
})),
|
||||||
}
|
}
|
||||||
@@ -100,7 +107,7 @@ export class TypesService {
|
|||||||
: undefined,
|
: undefined,
|
||||||
},
|
},
|
||||||
include: {
|
include: {
|
||||||
customFields: true,
|
customFields: { select: CUSTOM_FIELD_SELECT },
|
||||||
componentRequirements: {
|
componentRequirements: {
|
||||||
include: {
|
include: {
|
||||||
typeComposant: true,
|
typeComposant: true,
|
||||||
@@ -119,7 +126,7 @@ export class TypesService {
|
|||||||
return this.prisma.typeMachine.findMany({
|
return this.prisma.typeMachine.findMany({
|
||||||
include: {
|
include: {
|
||||||
machines: true,
|
machines: true,
|
||||||
customFields: true,
|
customFields: { select: CUSTOM_FIELD_SELECT },
|
||||||
componentRequirements: {
|
componentRequirements: {
|
||||||
include: {
|
include: {
|
||||||
typeComposant: true,
|
typeComposant: true,
|
||||||
@@ -139,7 +146,7 @@ export class TypesService {
|
|||||||
where: { id },
|
where: { id },
|
||||||
include: {
|
include: {
|
||||||
machines: true,
|
machines: true,
|
||||||
customFields: true,
|
customFields: { select: CUSTOM_FIELD_SELECT },
|
||||||
componentRequirements: {
|
componentRequirements: {
|
||||||
include: {
|
include: {
|
||||||
typeComposant: true,
|
typeComposant: true,
|
||||||
@@ -179,7 +186,6 @@ export class TypesService {
|
|||||||
name: field.name,
|
name: field.name,
|
||||||
type: field.type,
|
type: field.type,
|
||||||
required: field.required || false,
|
required: field.required || false,
|
||||||
defaultValue: field.defaultValue,
|
|
||||||
options: field.options,
|
options: field.options,
|
||||||
typeMachineId: id,
|
typeMachineId: id,
|
||||||
})),
|
})),
|
||||||
@@ -233,7 +239,7 @@ export class TypesService {
|
|||||||
where: { id },
|
where: { id },
|
||||||
data: typeData,
|
data: typeData,
|
||||||
include: {
|
include: {
|
||||||
customFields: true,
|
customFields: { select: CUSTOM_FIELD_SELECT },
|
||||||
componentRequirements: {
|
componentRequirements: {
|
||||||
include: {
|
include: {
|
||||||
typeComposant: true,
|
typeComposant: true,
|
||||||
@@ -292,14 +298,13 @@ export class TypesService {
|
|||||||
name: field.name,
|
name: field.name,
|
||||||
type: field.type,
|
type: field.type,
|
||||||
required: field.required || false,
|
required: field.required || false,
|
||||||
defaultValue: field.defaultValue,
|
|
||||||
options: field.options,
|
options: field.options,
|
||||||
})),
|
})),
|
||||||
}
|
}
|
||||||
: undefined,
|
: undefined,
|
||||||
},
|
},
|
||||||
include: {
|
include: {
|
||||||
customFields: true,
|
customFields: { select: CUSTOM_FIELD_SELECT },
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -309,7 +314,7 @@ export class TypesService {
|
|||||||
where: { category: ModelCategory.COMPONENT },
|
where: { category: ModelCategory.COMPONENT },
|
||||||
include: {
|
include: {
|
||||||
composants: true,
|
composants: true,
|
||||||
customFields: true,
|
customFields: { select: CUSTOM_FIELD_SELECT },
|
||||||
models: true,
|
models: true,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -323,7 +328,7 @@ export class TypesService {
|
|||||||
},
|
},
|
||||||
include: {
|
include: {
|
||||||
composants: true,
|
composants: true,
|
||||||
customFields: true,
|
customFields: { select: CUSTOM_FIELD_SELECT },
|
||||||
models: true,
|
models: true,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -346,7 +351,6 @@ export class TypesService {
|
|||||||
name: field.name,
|
name: field.name,
|
||||||
type: field.type,
|
type: field.type,
|
||||||
required: field.required || false,
|
required: field.required || false,
|
||||||
defaultValue: field.defaultValue,
|
|
||||||
options: field.options,
|
options: field.options,
|
||||||
typeComposantId: id,
|
typeComposantId: id,
|
||||||
})),
|
})),
|
||||||
@@ -367,7 +371,7 @@ export class TypesService {
|
|||||||
where: { id },
|
where: { id },
|
||||||
data,
|
data,
|
||||||
include: {
|
include: {
|
||||||
customFields: true,
|
customFields: { select: CUSTOM_FIELD_SELECT },
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -419,14 +423,13 @@ export class TypesService {
|
|||||||
name: field.name,
|
name: field.name,
|
||||||
type: field.type,
|
type: field.type,
|
||||||
required: field.required || false,
|
required: field.required || false,
|
||||||
defaultValue: field.defaultValue,
|
|
||||||
options: field.options,
|
options: field.options,
|
||||||
})),
|
})),
|
||||||
}
|
}
|
||||||
: undefined,
|
: undefined,
|
||||||
},
|
},
|
||||||
include: {
|
include: {
|
||||||
pieceCustomFields: true,
|
pieceCustomFields: { select: CUSTOM_FIELD_SELECT },
|
||||||
pieceModels: true,
|
pieceModels: true,
|
||||||
pieceRequirements: true,
|
pieceRequirements: true,
|
||||||
pieces: true,
|
pieces: true,
|
||||||
@@ -440,7 +443,7 @@ export class TypesService {
|
|||||||
const items = await this.prisma.modelType.findMany({
|
const items = await this.prisma.modelType.findMany({
|
||||||
where: { category: ModelCategory.PIECE },
|
where: { category: ModelCategory.PIECE },
|
||||||
include: {
|
include: {
|
||||||
pieceCustomFields: true,
|
pieceCustomFields: { select: CUSTOM_FIELD_SELECT },
|
||||||
pieceModels: true,
|
pieceModels: true,
|
||||||
pieceRequirements: true,
|
pieceRequirements: true,
|
||||||
pieces: true,
|
pieces: true,
|
||||||
@@ -455,7 +458,7 @@ export class TypesService {
|
|||||||
const item = await this.prisma.modelType.findFirst({
|
const item = await this.prisma.modelType.findFirst({
|
||||||
where: { id, category: ModelCategory.PIECE },
|
where: { id, category: ModelCategory.PIECE },
|
||||||
include: {
|
include: {
|
||||||
pieceCustomFields: true,
|
pieceCustomFields: { select: CUSTOM_FIELD_SELECT },
|
||||||
pieceModels: true,
|
pieceModels: true,
|
||||||
pieceRequirements: true,
|
pieceRequirements: true,
|
||||||
pieces: true,
|
pieces: true,
|
||||||
@@ -479,7 +482,6 @@ export class TypesService {
|
|||||||
name: field.name,
|
name: field.name,
|
||||||
type: field.type,
|
type: field.type,
|
||||||
required: field.required || false,
|
required: field.required || false,
|
||||||
defaultValue: field.defaultValue,
|
|
||||||
options: field.options,
|
options: field.options,
|
||||||
typePieceId: id,
|
typePieceId: id,
|
||||||
})),
|
})),
|
||||||
@@ -500,7 +502,7 @@ export class TypesService {
|
|||||||
where: { id },
|
where: { id },
|
||||||
data: updatePayload,
|
data: updatePayload,
|
||||||
include: {
|
include: {
|
||||||
pieceCustomFields: true,
|
pieceCustomFields: { select: CUSTOM_FIELD_SELECT },
|
||||||
pieceModels: true,
|
pieceModels: true,
|
||||||
pieceRequirements: true,
|
pieceRequirements: true,
|
||||||
pieces: true,
|
pieces: true,
|
||||||
|
|||||||
@@ -75,7 +75,6 @@ type MachineRecord = {
|
|||||||
reference: Nullable<string>;
|
reference: Nullable<string>;
|
||||||
constructeurId: Nullable<string>;
|
constructeurId: Nullable<string>;
|
||||||
prix: Nullable<string>;
|
prix: Nullable<string>;
|
||||||
emplacement: Nullable<string>;
|
|
||||||
siteId: string;
|
siteId: string;
|
||||||
typeMachineId: Nullable<string>;
|
typeMachineId: Nullable<string>;
|
||||||
createdAt: Date;
|
createdAt: Date;
|
||||||
@@ -87,7 +86,6 @@ type ComposantRecord = {
|
|||||||
name: string;
|
name: string;
|
||||||
reference: Nullable<string>;
|
reference: Nullable<string>;
|
||||||
prix: Nullable<string>;
|
prix: Nullable<string>;
|
||||||
emplacement: Nullable<string>;
|
|
||||||
machineId: Nullable<string>;
|
machineId: Nullable<string>;
|
||||||
parentComposantId: Nullable<string>;
|
parentComposantId: Nullable<string>;
|
||||||
typeComposantId: Nullable<string>;
|
typeComposantId: Nullable<string>;
|
||||||
@@ -103,7 +101,6 @@ type PieceRecord = {
|
|||||||
name: string;
|
name: string;
|
||||||
reference: Nullable<string>;
|
reference: Nullable<string>;
|
||||||
prix: Nullable<string>;
|
prix: Nullable<string>;
|
||||||
emplacement: Nullable<string>;
|
|
||||||
machineId: Nullable<string>;
|
machineId: Nullable<string>;
|
||||||
composantId: Nullable<string>;
|
composantId: Nullable<string>;
|
||||||
typePieceId: Nullable<string>;
|
typePieceId: Nullable<string>;
|
||||||
@@ -119,7 +116,6 @@ type CustomFieldRecord = {
|
|||||||
name: string;
|
name: string;
|
||||||
type: string;
|
type: string;
|
||||||
required: boolean;
|
required: boolean;
|
||||||
defaultValue: Nullable<string>;
|
|
||||||
options: string[];
|
options: string[];
|
||||||
typeMachineId: Nullable<string>;
|
typeMachineId: Nullable<string>;
|
||||||
typeComposantId: Nullable<string>;
|
typeComposantId: Nullable<string>;
|
||||||
@@ -258,7 +254,6 @@ class InMemoryPrismaService {
|
|||||||
name: field.name,
|
name: field.name,
|
||||||
type: field.type,
|
type: field.type,
|
||||||
required: field.required ?? false,
|
required: field.required ?? false,
|
||||||
defaultValue: field.defaultValue ?? null,
|
|
||||||
options: field.options ?? [],
|
options: field.options ?? [],
|
||||||
typeMachineId: null,
|
typeMachineId: null,
|
||||||
typeComposantId: record.id,
|
typeComposantId: record.id,
|
||||||
@@ -319,7 +314,6 @@ class InMemoryPrismaService {
|
|||||||
name: field.name,
|
name: field.name,
|
||||||
type: field.type,
|
type: field.type,
|
||||||
required: field.required ?? false,
|
required: field.required ?? false,
|
||||||
defaultValue: field.defaultValue ?? null,
|
|
||||||
options: field.options ?? [],
|
options: field.options ?? [],
|
||||||
typeMachineId: null,
|
typeMachineId: null,
|
||||||
typeComposantId: null,
|
typeComposantId: null,
|
||||||
@@ -380,7 +374,6 @@ class InMemoryPrismaService {
|
|||||||
name: field.name,
|
name: field.name,
|
||||||
type: field.type,
|
type: field.type,
|
||||||
required: field.required ?? false,
|
required: field.required ?? false,
|
||||||
defaultValue: field.defaultValue ?? null,
|
|
||||||
options: field.options ?? [],
|
options: field.options ?? [],
|
||||||
typeMachineId: record.id,
|
typeMachineId: record.id,
|
||||||
typeComposantId: null,
|
typeComposantId: null,
|
||||||
@@ -485,7 +478,6 @@ class InMemoryPrismaService {
|
|||||||
reference: data.reference ?? null,
|
reference: data.reference ?? null,
|
||||||
constructeurId: data.constructeurId ?? null,
|
constructeurId: data.constructeurId ?? null,
|
||||||
prix: data.prix ?? null,
|
prix: data.prix ?? null,
|
||||||
emplacement: data.emplacement ?? null,
|
|
||||||
siteId: data.siteId,
|
siteId: data.siteId,
|
||||||
typeMachineId: data.typeMachineId ?? null,
|
typeMachineId: data.typeMachineId ?? null,
|
||||||
createdAt: now,
|
createdAt: now,
|
||||||
@@ -530,7 +522,6 @@ class InMemoryPrismaService {
|
|||||||
name: data.name,
|
name: data.name,
|
||||||
reference: data.reference ?? null,
|
reference: data.reference ?? null,
|
||||||
prix: data.prix ?? null,
|
prix: data.prix ?? null,
|
||||||
emplacement: data.emplacement ?? null,
|
|
||||||
machineId: data.machineId ?? null,
|
machineId: data.machineId ?? null,
|
||||||
parentComposantId: data.parentComposantId ?? null,
|
parentComposantId: data.parentComposantId ?? null,
|
||||||
typeComposantId: data.typeComposantId ?? null,
|
typeComposantId: data.typeComposantId ?? null,
|
||||||
@@ -568,7 +559,6 @@ class InMemoryPrismaService {
|
|||||||
name: data.name,
|
name: data.name,
|
||||||
reference: data.reference ?? null,
|
reference: data.reference ?? null,
|
||||||
prix: data.prix ?? null,
|
prix: data.prix ?? null,
|
||||||
emplacement: data.emplacement ?? null,
|
|
||||||
machineId: data.machineId ?? null,
|
machineId: data.machineId ?? null,
|
||||||
composantId: data.composantId ?? null,
|
composantId: data.composantId ?? null,
|
||||||
typePieceId: data.typePieceId ?? null,
|
typePieceId: data.typePieceId ?? null,
|
||||||
@@ -604,7 +594,6 @@ class InMemoryPrismaService {
|
|||||||
name: data.name,
|
name: data.name,
|
||||||
type: data.type,
|
type: data.type,
|
||||||
required: data.required ?? false,
|
required: data.required ?? false,
|
||||||
defaultValue: data.defaultValue ?? null,
|
|
||||||
options: data.options ?? [],
|
options: data.options ?? [],
|
||||||
typeMachineId: data.typeMachineId ?? null,
|
typeMachineId: data.typeMachineId ?? null,
|
||||||
typeComposantId: data.typeComposantId ?? null,
|
typeComposantId: data.typeComposantId ?? null,
|
||||||
@@ -1100,7 +1089,6 @@ describe('Inventory flow (e2e)', () => {
|
|||||||
name: 'Puissance nominale',
|
name: 'Puissance nominale',
|
||||||
type: 'text',
|
type: 'text',
|
||||||
required: true,
|
required: true,
|
||||||
defaultValue: '5 kW',
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
@@ -1118,7 +1106,6 @@ describe('Inventory flow (e2e)', () => {
|
|||||||
{
|
{
|
||||||
name: 'Référence fournisseur',
|
name: 'Référence fournisseur',
|
||||||
type: 'text',
|
type: 'text',
|
||||||
defaultValue: 'STD-001',
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
@@ -1174,7 +1161,7 @@ describe('Inventory flow (e2e)', () => {
|
|||||||
name: 'Puissance nominale',
|
name: 'Puissance nominale',
|
||||||
type: 'text',
|
type: 'text',
|
||||||
required: true,
|
required: true,
|
||||||
defaultValue: '7 kW',
|
value: '7 kW',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@@ -1190,7 +1177,7 @@ describe('Inventory flow (e2e)', () => {
|
|||||||
{
|
{
|
||||||
name: 'Référence fournisseur',
|
name: 'Référence fournisseur',
|
||||||
type: 'text',
|
type: 'text',
|
||||||
defaultValue: 'STD-002',
|
value: 'STD-002',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user