Bunzl árlistájához szükséges egy eddig hiányzó mértékegység. A "Legkisebb eladási egység" / "Mennyiségi egység" mezőt két párhuzamos árlista-import validálja külön-külön (a régi PriceListService.php ProductUnitEnum-mal, az új PricelistFileProcessService.php saját PricelistSellerUnitEnum-mal), mindkettő végül ugyanabba a products.sellerUnit / products.amountUnit DB enum oszlopba ír. A puszta enum-bővítés önmagában nem lett volna elég: a DB oszlop korlátozta volna a végrehajtást, csak ott, a legkésőbbi ponton bukva el. - ProductUnitEnum: új 'm' case (régi pipeline validációja + a DB oszlopokat generáló forrás). - PricelistSellerUnitEnum: új 'm' case (új pipeline validációja). - Migráció: products.sellerUnit/amountUnit és order_archives_items ugyanezen oszlopainak DB enum bővítése 'm'-mel, ProductUnitEnum::getKeys()-ből generálva, hogy a PHP enum és a DB oszlop ne csúszhasson el egymástól. A down() az 'm' értékű sorokat NULL-ra állítja visszagörgetéskor, különben a szűkített enum miatt az ALTER hibára futna. A "Mértékegység" (productUnit) oszlopot szándékosan nem bővítettem, a jegy csak a másik két mezőt említi. - schema:dump frissítve. 5 új teszt mindkét pipeline validációjára és a DB enum oszlopra. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
30 lines
567 B
PHP
30 lines
567 B
PHP
<?php
|
|
|
|
namespace App\Enums;
|
|
|
|
enum PricelistSellerUnitEnum: string
|
|
{
|
|
case csom = 'csom';
|
|
case kart = 'kart';
|
|
case rúd = 'rúd';
|
|
case db = 'db';
|
|
case dob = 'dob';
|
|
case zsák = 'zsák';
|
|
case tálca = 'tálca';
|
|
case kg = 'kg';
|
|
case liter = 'liter';
|
|
case pár = 'pár';
|
|
case tekercs = 'tekercs';
|
|
case m = 'm';
|
|
|
|
/**
|
|
* Visszaadja az összes értéket tömbként
|
|
*
|
|
* @return array<string>
|
|
*/
|
|
public static function values(): array
|
|
{
|
|
return array_column(self::cases(), 'value');
|
|
}
|
|
}
|