A rendszerben 70 duplikált gyártónév halmozódott fel (146 rekord, 1166-ból), mert a legacy import karakterre pontos egyezést követelt: a "Danone " nem találta meg a meglévő "Danone"-t, és felvett egy újat - a nyers, trimmeletlen Excel-értékkel. Gyártóhoz nincs admin felület, ez az egyetlen keletkezési út. Következménye kettős: az árlista feldolgozó valódi változás nélkül is módosulást jelez (a vizsgált fájlban 126 "Módosult" sorból 103 emiatt), a Termék mennyiség statisztika pedig egy gyártóra szűrve a másik ID alá könyvelt tételeket kihagyja a riportból. - új App\Support\NameNormalizer: a normalizálás egyetlen definíciója. Három független pont használja (legacy import, új feldolgozó, jövőbeli összevonó parancs); ha ezek elcsúsznak, az újra duplikált törzsadatot szül. - PriceListService::getProducerByName(): a karakterre pontos találat továbbra is elsőbbséget élvez, de ha nincs, jön a normalizált egyeztetés. Duplikátum esetén a legrégebbi rekordot adja vissza - a termékek arra mutatnak. - PriceListService::addNewProducer(): trimmel mentés előtt - getProducerLookupMap(): kihagyja az archive/deleted státuszú gyártókat. Enélkül a beolvasztott rekord visszakerülne a feloldásba, és a takarítás hatástalan lenne. Ma nem változtat semmin, csak felkészít. Az új feldolgozó lookupjának tie-breakjéhez SZÁNDÉKOSAN nem nyúltam: egy sorral eltüntetné a hamis "Módosult" jelzéseket, de az a funkcióban fedné el az adathibát. A javulás a tényleges adattakarításból jöjjön. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| Browser | ||
| Feature | ||
| Unit | ||
| DuskTestCase.php | ||
| TestCase.php | ||