Błąd #541
zamknięte20. [TRASY-001] Przebudować katalog tras po przekazaniu pojazdu
100%
Opis
Kolejność realizacji: 20/24
Problem:
Po zmianie jednostki statystyki route_catalog mogą należeć do niewłaściwej jednostki.
Skutek / ryzyko:
Możliwa jest niespójność danych, błędny przebieg, nieaktualny raport albo niejednoznaczna historia operacji.
Docelowe rozwiązanie:
Trasy przypisać do jednostki ewidencji z chwili przejazdu i przebudować wpisy obu jednostek po podziale.
Pliki:
app/vehicle_transfer.php; app/route_catalog.php
Kryteria akceptacji:
Rozwiązanie działa atomowo, zachowuje ciągłość przebiegu, nie zmienia po cichu zamkniętych okresów i pozostawia czytelny ślad tam, gdzie wykonywana jest korekta.
Uaktualnione przez Michał Kurkiewicz 5 dni temu
- Zmieniono Status z Nowy na Zamknięty
- Zmieniono % Wykonania z 0 na 100
Dodałem pełną przebudowę dynamicznego katalogu tras po przekazaniu pojazdu.
Nowa funkcja:
route_catalog_rebuild_after_vehicle_transfer()
wykonuje w ramach tej samej transakcji:
ustalenie użytkowników powiązanych z przejazdami pojazdu,
usunięcie ich nieaktualnych dynamicznych wpisów katalogu w starej i nowej jednostce,
ponowne obliczenie tras na podstawie faktycznych przejazdów,
przypisanie trasy do jednostki zapisanej w ewidencji,
ponowne obliczenie liczby użyć,
ponowne ustalenie daty ostatniego użycia,
zachowanie reguł tras prywatnych.
Kluczowa zmiana polega na tym, że jednostka trasy nie jest już ustalana wyłącznie na podstawie aktualnej jednostki pojazdu.
Teraz źródłem jednostki jest:
mileage_registers.organizational_unit_id
Dzięki temu:
trasy sprzed przekazania pozostają w katalogu starej jednostki,
trasy od dnia przekazania trafiają do katalogu nowej jednostki,
podział ewidencji automatycznie określa prawidłową jednostkę przejazdów,
licznik użyć tras jest przeliczany z rzeczywistych danych,
nie powstają nieaktualne wpisy wynikające z aktualnej jednostki pojazdu.
Przebudowa katalogu jest częścią transakcji przekazania. Jeśli się nie powiedzie, całe przekazanie zostanie wycofane.