d2d.emegrendeles.hu/tests
E98Developer c0888db4a2 FIX EV3-357 gyártó duplikációk megelőzése az árlista importban
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>
2026-08-27 07:56:30 +02:00
..
Browser ADD first laravel dusk test 2026-04-08 13:25:17 +02:00
Feature FIX EV3-357 gyártó duplikációk megelőzése az árlista importban 2026-08-27 07:56:30 +02:00
Unit git init 2026-02-28 06:53:05 +01:00
DuskTestCase.php ADD first laravel dusk test 2026-04-08 13:25:17 +02:00
TestCase.php FIX Teszt párhuzamos futtatás processzenkénti adatbázissal 2026-08-17 10:34:13 +02:00