Кожен продаж рано чи пізно впирається в одне питання: вистачить ΣНакл, щоб зареєструвати ПН, чи ні. Найгірше дізнатися про брак ліміту в момент реєстрації — коли ЄРПН повертає «303 — недостатньо коштів», а строк уже тисне. Цей гайд проводить вас усім Sales-флоу — від підтвердження SO до квитанції №2 — і показує, де ліміт «бронюється», де списується насправді й коли поповнювати спецрахунок ДПС, щоб такої відмови не сталося.
Результат
На кожному кроці продажу — від чернетки SO до зареєстрованої ПН — ви бачите, скільки ΣНакл «зарезервовано» наперед, скільки реально доступно сьогодні і коли треба поповнювати електронний рахунок ДПС, щоб не отримати «303 — недостатньо коштів» у момент реєстрації.
Передумови
- Кастомний модуль СЕА підключений: модель
sea.vat.balanceтягне ΣНакл з кабінету ДПС, cron оновлює залишок принаймні раз на годину (див. Як думає СЕА в Odoo). - На
account.moveє поляl10n_ua_pn_statusіl10n_ua_pn_date— без них прогноз будувати немає на чому. - Користувач має права групи Sales / User і Accounting / Billing.
- Фінансовий директор погодив правило буфера — на скільки відсотків ліміт має перевищувати очікувані ПН найближчих 3 днів. У ТОВ «УкрПром-Тех» це 10%.
Як це зробити
-
Подивіться на ліміт перед підтвердженням SO. У формі
sale.orderдодано смарт-кнопку СЕА-прогноз. Натисніть її — відкриється бічна панель з трьома числами: поточний ΣНакл, сума підтверджених SO без зареєстрованих ПН, чистий доступний ліміт. Якщо чистий доступний менший за суму ПДВ цього SO — попередження жовтим. -
Підтвердіть SO. Натисніть Підтвердити. У стані
saleстворюєтьсяstock.pickingі запис у таблиці прогнозу: дата запланованого відвантаження, очікувана сума ПЗ. Сам ліміт у ДПС ще не зменшився — це бронь у нашій системі. -
Перевірте дату першої події. Якщо контрагент платить авансом, перша подія — це
account.payment. Якщо післяплата —stock.pickingзі статусомdone. Подивіться наsale.orderу вкладці Other Info — полеpayment_term_idпідкаже сценарій. Від цього залежить, у який день списувати ліміт у прогнозі. -
При надходженні авансу — реєструйте платіж і ПН одразу. Створюєте
account.paymentна суму авансу, реконсиліюєте з SO. Odoo автоматично складе чернетку інвойсу (account.move) — кнопка Виписати ПН на ній запускає wizard складання ПН за датою платежу. Перед відправкою wizard перевіряє ΣНакл: якщо ліміт менший за суму ПДВ, натиснути Зареєструвати не дасть. -
При відвантаженні без авансу — валідуйте picking і складайте ПН. На
stock.pickingнатискаєте Перевірити — створюєтьсяaccount.moveу станіdraft. Підтверджуєте інвойс, натискаєте Виписати ПН. Wizard формує XML за схемою J1201010, накладає КЕП директора, відправляє в ЄРПН. ΣНакл списується в ДПС після відповіді Зареєстровано з квитанції №2. -
Стежте за прогнозом на 7 днів. Звіт Бухгалтерія → ПДВ → СЕА-прогноз малює графік: поточний ΣНакл, заплановані вихідні ПН по днях, заплановані надходження ΣПК від вхідних ПН і митниці. Червона зона — день, у який очікувані вихідні перевищують доступний ліміт.
-
Поповнюйте СЕА за день до критичної дати. Якщо прогноз червоніє за 2 дні — формуєте платіжне доручення на спецрахунок ДПС у сумі дефіциту + 10% буфер. Перевіряєте через API кабінету, що ΣПопПод зросла. Затримка надходження — до доби, тому одного дня запасу зазвичай достатньо.
Перевірка
- На кожному підтвердженому SO видно поле Очікувана дата ПН і Прогнозне ПЗ.
- У звіті Бухгалтерія → ПДВ → СЕА-прогноз немає червоних днів на горизонті 3 діб або є з позначкою «заплановано поповнення».
- Сальдо
sea.vat.balance.available_limitна кінець дня збігається з даними кабінету платника ДПС. - На жодній ПН цього тижня немає статусу Відмова з причиною «303 — недостатньо коштів».
- Журнал поповнень спецрахунку (платіжки на ДПС) звірений з ΣПопПод у звіті прогнозу.
Якщо щось пішло не так
| Симптом | Причина | Виправлення |
|---|---|---|
| ПН відмовлена з «303 — недостатньо коштів» | ΣНакл у кабінеті менший за суму ПЗ; кеш у Odoo застарів | Перевірте cron sea.balance.fetch, оновіть вручну через Запустити зараз, поповніть спецрахунок ДПС, спробуйте реєстрацію повторно |
| Прогноз показує великий ліміт, а в кабінеті — нуль | Cron не відпрацював через помилку токена API ДПС | Налаштування → Технічне → Cron — подивіться last_call, перевірте credentials у ir.config_parameter |
| Аванс надійшов, ПН не складена автоматично | Server action on_payment_post не прив’язаний до account.payment або вимкнений | Технічне → Автоматизація → Серверні дії — увімкніть Скласти ПН на дату платежу |
| ΣНакл «впав» на більшу суму, ніж очікували | Постачальник склав РК на зменшення вхідної ПН — ваш ΣПК зменшився | Знайдіть РК у реєстрі вхідних ПН (моніторинг ЄРПН), оцініть, чи погоджуєтеся з підставою; якщо ні — переговори з постачальником і РК на сторно його РК |
| SO з ставкою 20% має очікуване ПЗ 0 ₴ | У контрагента fiscal position «Звільнення п.32 підрозд.2 розд.ХХ» — ставка перемикається на «09 — звільнено» | Це не помилка: на звільнених операціях ПН складається з типом 09, ΣНаклВид не зростає |
| Експортна ПН (тип 07) показана у прогнозі як «з’їсть ліміт» | Базова ставка 20% не перевизначена на 0% через fiscal position | Перевірте account.fiscal.position.tax для партнера-нерезидента — має бути мапінг 20% → 0% експорт |
Дотичне
- СЕА ПДВ — ліміт реєстрації ПН в Odoo — як модель
sea.vat.balanceтримає історію і малює дашборд. - ПН і РК в Odoo для ЄРПН — точка списання ліміту і API-канал у ДПС.
- Виписка та реєстрація вихідної ПН — норматив 15 днів, штрафи і блокування СМКОР.
- Перша подія — який день вважається датою складання ПН.