fix(custom-fields) : supporte les caracteres accentues dans les placeholders de formule
La regex \w+ ne capturait pas les caracteres accentues (ex. {Diametre}
avec 'è'), le placeholder restait litteral dans la reference auto.
Remplace par [^}]+ avec le flag u/gu cote PHP et JS pour matcher
n'importe quel caractere entre les accolades.
This commit is contained in:
@@ -145,6 +145,69 @@ class ReferenceAutoGeneratorTest extends AbstractApiTestCase
|
||||
self::assertSame('U507', $result);
|
||||
}
|
||||
|
||||
public function testGenerateWithAccentedFieldName(): void
|
||||
{
|
||||
$mt = $this->createModelType('Palier', 'PAL-ACCENT', ModelCategory::PIECE);
|
||||
$mt->setReferenceFormula('PA-{Diamètre}-33');
|
||||
$mt->setRequiredFieldsForReference(['Diamètre']);
|
||||
|
||||
$em = $this->getEntityManager();
|
||||
$em->flush();
|
||||
|
||||
$cf = $this->createCustomField('Diamètre', 'number', typePiece: $mt);
|
||||
$piece = $this->createPiece('Palier 70', null, $mt);
|
||||
$this->createCustomFieldValue($cf, '70', piece: $piece);
|
||||
|
||||
$em->refresh($piece);
|
||||
|
||||
$generator = self::getContainer()->get('App\Service\ReferenceAutoGenerator');
|
||||
$result = $generator->generate($piece);
|
||||
|
||||
self::assertSame('PA-70-33', $result);
|
||||
}
|
||||
|
||||
public function testGenerateWithNumberTypeField(): void
|
||||
{
|
||||
$mt = $this->createModelType('NumberField', 'NUM-001', ModelCategory::PIECE);
|
||||
$mt->setReferenceFormula('R-{taille}');
|
||||
$mt->setRequiredFieldsForReference(['taille']);
|
||||
|
||||
$em = $this->getEntityManager();
|
||||
$em->flush();
|
||||
|
||||
$cf = $this->createCustomField('taille', 'number', typePiece: $mt);
|
||||
$piece = $this->createPiece('Piece Number', null, $mt);
|
||||
$this->createCustomFieldValue($cf, '42', piece: $piece);
|
||||
|
||||
$em->refresh($piece);
|
||||
|
||||
$generator = self::getContainer()->get('App\Service\ReferenceAutoGenerator');
|
||||
$result = $generator->generate($piece);
|
||||
|
||||
self::assertSame('R-42', $result);
|
||||
}
|
||||
|
||||
public function testGenerateWithDecimalNumberField(): void
|
||||
{
|
||||
$mt = $this->createModelType('NumberDec', 'NUM-002', ModelCategory::PIECE);
|
||||
$mt->setReferenceFormula('R-{taille}');
|
||||
$mt->setRequiredFieldsForReference(['taille']);
|
||||
|
||||
$em = $this->getEntityManager();
|
||||
$em->flush();
|
||||
|
||||
$cf = $this->createCustomField('taille', 'number', typePiece: $mt);
|
||||
$piece = $this->createPiece('Piece Dec', null, $mt);
|
||||
$this->createCustomFieldValue($cf, '12.5', piece: $piece);
|
||||
|
||||
$em->refresh($piece);
|
||||
|
||||
$generator = self::getContainer()->get('App\Service\ReferenceAutoGenerator');
|
||||
$result = $generator->generate($piece);
|
||||
|
||||
self::assertSame('R-12.5', $result);
|
||||
}
|
||||
|
||||
public function testGenerateWithSpaceInFormula(): void
|
||||
{
|
||||
$mt = $this->createModelType('Palier2', 'PAL-002', ModelCategory::PIECE);
|
||||
|
||||
Reference in New Issue
Block a user