← DokArh Portal
fix+critical

DB dedup + PRIMARY KEY fix — invoicing_invoice + invoiceitem

Kreator: genesis Datum: 2026-05-18 Status:
WeisE3™ ID: WEISE3::a5076c3d3e34e464040bdf583f758807::CC::dokarh::FENIX2026
tipfix+critical
sustavfina-connect
git_commit4d1fbbf7
serverNEW (31.70.90.84)
probleminvoicing_invoice i invoicing_invoiceitem NISU imali PRIMARY KEY constraint. Cijela tablica bila duplirana (svaki invoice 2x, svaka stavka 3x). Ukupno: 30.656 invoice redova umjesto 15.335, 29.616 item redova umjesto 9.876.
uzrokImport/migracija podataka pokrenuta vise puta bez provjere duplikata. Baza radila funkcionalno jer Django ORM ne ovisi o DB-level PK.
rjesenje[ "DELETE invoice duplikata (DELETE 15321): zadrzi MIN(ctid) po id", "DELETE item duplikata (DELETE 19740): zadrzi MIN(ctid) po id", "ALTER TABLE invoicing_invoice ADD PRIMARY KEY (id)", "ALTER TABLE invoicing_invoiceitem ADD PRIMARY KEY (id)", "ALTER TABLE invoicing_invoiceacknowledgement ADD FOREIGN KEY -> invoicing_invoice(id)", "VACUUM ANALYZE obje tablice", "Migracija 0043 kao record u django_migrations", "Backup: invoicing_invoice_backup_20260518, invoicing_invoiceitem_back
provjeraVIS-R-2026-004: 6 stavki, subtotal=1300.00 = sum(items). Django check: 0 errors.
zakon[ "ZAKON 32" ]
napomeneStari racuni (id 1-5000) imaju nekonzistentne stored subtotals (kalkulirani od starih cijena). Nije dio ovog fixa. Backup tablice dostupne za provjeru.