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
361 B
PHP
30 lines
361 B
PHP
<?php
|
|
|
|
namespace App\Enums;
|
|
|
|
/**
|
|
* @method static static g()
|
|
*/
|
|
class ProductUnitEnum extends BasicUnitEnum
|
|
{
|
|
const g = 'g';
|
|
|
|
const ml = 'ml';
|
|
|
|
const tálca = 'tálca';
|
|
|
|
const csom = 'csom';
|
|
|
|
const dob = 'dob';
|
|
|
|
const kart = 'kart';
|
|
|
|
const rúd = 'rúd';
|
|
|
|
const pár = 'pár';
|
|
|
|
const zsák = 'zsák';
|
|
|
|
const m = 'm';
|
|
}
|