# Алгоритм «Акт перевантаження» (ReloadAct)

<table border="1" id="bkmrk-%D0%94%D0%BE%D0%B4.-%D1%82%D1%80%D0%B0%D0%BD%D0%B7%D0%B0%D0%BA%D1%86%D1%96%D1%97-%28%D0%BA%D0%BE%D0%BB"><caption>**Дод. транзакції (коли формуються та ким реєструються)**</caption><colgroup><col></col><col></col><col></col><col></col></colgroup><tbody><tr><td class="align-center">**Реєструється до початку ЖЦ Акту (завжди ініціатором акта)**</td><td class="align-center">**Хто виступає ініціатором Акта (ролі вказані з ТТН)**</td><td class="align-center">**Реєструється після завершення ЖЦ Акту**</td><td class="align-center">**Хто реєструє транзакцію ТТН по завершенню ЖЦ Акта (ролі вказані з ТТН)**</td></tr><tr><td colspan="4">**Акт перевантаження**</td></tr><tr><td class="align-center">+</td><td class="align-center">Перевізник CA (поточний) або Водій DR (поточний)</td><td class="align-center">+</td><td class="align-center">Перевізник CA (новий) або Водій DR (новий)</td></tr></tbody></table>

<table border="1" id="bkmrk-%D0%97%D0%BC%D1%96%D0%BD%D0%B8%2C-%D1%8F%D0%BA%D1%96-%D0%B2%D0%BD%D0%BE%D1%81%D1%8F%D1%82%D1%8C%D1%81%D1%8F" style="width: 100%;"><caption>**Зміни, які вносяться коригуючим Актом до ТТН**</caption><colgroup><col style="width: 39.4541%;"></col><col style="width: 60.5459%;"></col></colgroup><tbody><tr><td class="align-center">**Реєструється до початку ЖЦ Акту (завжди ініціатором акта)**</td><td class="align-center">**Реєструється після завершення ЖЦ Акту**</td></tr><tr><td colspan="2">**Акт перевантаження**</td></tr><tr><td class="align-center">У разі заміни Перевізника та/або Водія:

1. В тіло ТТН додається поточний/новий Перевізник та поточний/новий Водій в `NotifiedTradeParty` з роллю `CH`
2. UaSignatureStorage - підпис поточного Перевізника CA або поточного Водія DR

</td><td class="align-left"><span style="text-decoration: underline;">Позитивне</span> завершення ЖЦ Акту:

1. В тіло ТТН додається коригуючий акт: 
    - `AssociatedReferencedDocument.Remarks (TypeCode = 916)` = "Акт перевантаження"
    - `AssociatedReferencedDocument.ID` = номер акту перевантаження
    - `AssociatedReferencedDocument.FormattedIssueDateTime` = дата акта перевантаження
2. В тілі ТТН попередній Перевізник та попередній Водій переносяться з `CarrierTradeParty` з роллю `CA` в `NotifiedTradeParty` з роллю `CJ`
3. В тілі ТТН новий Перевізник та новий Водій переносяться з `NotifiedTradeParty` з роллю `CH` в `CarrierTradeParty` з роллю `CA`
4. В тілі ТТН заміються старі дані по всім транспортним засобам на нові дані по всім транспортним засобам
5. В тіло ТТН додається новий Водій в `PickUpTransportEvent - CertifyingTradeParty` з роллю `DR` (в блоці будуть тільки унікальні водії за `ID`)
6. UaSignatureStorage - підпис нового Перевізника CA або нового Водія DR

<span style="text-decoration: underline;">Негативне</span> завершення ЖЦ Акту (відхилено Перевізником або Водієм):

1. В тілі ТТН новий Перевізник та новий Водій переносяться з `NotifiedTradeParty` з роллю `CH` в `NotifiedTradeParty` з роллю `CJ`

</td></tr></tbody></table>