Odoo
МодульСЕА ПДВ — ліміт реєстрації ПН в Odoo
Як в Odoo відстежувати ΣНакл — баланс електронного рахунку ПДВ, поповнювати його вчасно й не впиратися в ліміт під час реєстрації ПН.
Що це і навіщо
СЕА — Система електронного адміністрування ПДВ. У ній кожен платник має «електронний рахунок» — віртуальну скарбничку, з якої «списується» право зареєструвати ПН. Формула спрощено: ΣНакл = ΣПК + ΣПопПод + ΣМитн − ΣНаклВид. Тобто скласти ПН можеш рівно на стільки, скільки в тебе «зайшло» (від постачальників, з митниці й поповнень) мінус те, що вже видав.
Звідси наслідок: якщо в тебе багато експорту (0% — вихідного ПДВ нема), але дуже мало внутрішніх закупівель із ПК, ліміт буде куций, і ПН ти не зареєструєш. Доведеться поповнювати рахунок СЕА власними грошима. А найболючіше це б’є саме тоді, коли в тебе криза кешфлоу. Звідси й завдання: прогнозувати ліміт і за потреби поповнювати наперед.
Як це працює
Технічно в Odoo цього з коробки немає взагалі. Потрібен кастом-модуль, який:
- Інтегрується з API кабінету платника ДПС і тягне поточне значення ΣНакл (зазвичай раз на годину).
- Зберігає історію. Окрема модель
sea.vat.balanceз полямиdate,accumulated_in(входить),accumulated_out(виходить),available_limit(поточний доступний). - Малює дашборд. Графік за останній місяць і прогноз на найближчі дні з урахуванням запланованих ПН.
- Видає попередження. Якщо доступний ліміт < суми ПН на сьогодні — алерт бухгалтеру.
class SeaVatBalance(models.Model):
_name = 'sea.vat.balance'
_order = 'date desc'
date = fields.Datetime('Час оновлення', required=True)
accumulated_in = fields.Float('ΣВх (від постачальників + митниця + поповнення)')
accumulated_out = fields.Float('ΣВих (видані ПН)')
available_limit = fields.Float('Доступний ліміт', compute='_compute_available')
@api.depends('accumulated_in', 'accumulated_out')
def _compute_available(self):
for rec in self:
rec.available_limit = rec.accumulated_in - rec.accumulated_out
Шлях у меню (для кастому): Бухгалтерія → ПДВ → СЕА ліміт.
У контексті українського обліку
Що змінює ліміт у плюс:
- Реєстрація вхідних ПН від постачальників (поповнення ΣПК).
- Розрахунки митниці під час імпорту (ΣМитн).
- Поповнення електронного рахунку з банку (ΣПопПод).
- РК на зменшення вихідного ПДВ (повернення товарів покупцем зменшує те, що ми видали).
Що зменшує:
- Реєстрація вихідних ПН (наша ΣНаклВид).
- РК на збільшення вхідного ПК (постачальник нам зменшує — наш ПК іде вниз).
Особливість: експорт (0%) — теж, формально, реєстрація вихідної ПН. Але оскільки ПДВ = 0, то й ΣНаклВид не приростає. Звідси «експортники не мають проблем зі СЕА».
Найбільше потерпають:
- Підприємства на касовому методі (часто комуналки, спецтехніка для ЗСУ). Вхідний ПК не зараховується в ΣПК до оплати, а вихідний ПН так само лягає лише на дату оплати — усе зміщується в часі.
- Підприємства з великою часткою «безПДВшних» витрат (зарплати, амортизація — на них ПДВ немає, отже й ΣПК не зростає), але великим вихідним ПЗ.
Як ми робимо (defense-контекст)
ТОВ «УкрПром-Тех» має змішану структуру: цивільні замовлення з ПДВ і оборонні зі звільненням за п.32 підрозд.2 розд.ХХ ПКУ. Для оборонних ПДВ ми не нараховуємо (ставка 0% або звільнення), але ПН все одно реєструємо (тип 09). Ліміт там не «з’їдається» — це наша перевага.
Дашборд у нас показує:
- Поточний ΣНакл (свіжість — 15 хв).
- ПН за сьогодні до реєстрації (сума).
- Прогноз на 7 днів (на основі підтверджених SO і запланованих відвантажень).
- Червона зона: якщо доступний ліміт < очікуваних ПН на найближчі 3 дні.
Поповнення СЕА — окремий процес. Платіжне доручення на спецрахунок ДПС, далі через API перевіряємо, що ΣПопПод зросла. Бувають затримки до доби — їх теж треба закладати в прогноз.
Типові граблі
- Не моніторимо ліміт. Несподівано не зареєстрували ПН. ЄРПН видає «303 — недостатньо коштів на електронному рахунку». Покупець не отримує ПК, угода зривається. Профілактика — щоденне зведення на дашборді, алерт за критичної суми.
- Поповнення СЕА на завищену суму. Гроші безпідставно «лежать» у ДПС — повернеш їх тільки за заявою через 365 днів. Поповнюй точно під потребу + 10% буфер.
- Постачальник виписав РК на зменшення — наш ПК упав, а ми його вже використали. Класична пастка. Постачальник склав РК на сторно або зменшення — і наш ліміт мінусується. Стеж за вхідними РК у реєстрі ЄРПН.
- Експорт = 0% = ліміт не зменшується, але декларація все одно треба правильна. ПН складається з типом 07, у ΣНаклВид не йде. Це не означає, що декларацію можна не подавати — рядок 2.1 заповнюй коректно.
- Імпорт послуг від нерезидента. Платник складає ПН сам собі, тип 14 (умовний продаж послуг). Це збільшує і ΣПК (вхідне), і ΣНаклВид (вихідне) — нетто нуль, але рух є. Забув скласти — потім доведеться боляче перераховувати.
- Кеш у Odoo застарів. Ліміт у дашборді 500 тис, а в реальності — 50. ПН не пройде. Перевір cron, частоту оновлення з API ДПС.
Дотичне
- ПН/РК — ПН як точка списання ліміту
- Декларація ПДВ — як ліміт відображається у декларації
- Податки UA — ставки і fiscal positions
Де цей модуль зустрічається5
- ГайдСЕА у SalesВід підтвердження SO до реєстрації ПН у ЄРПН — де і коли ΣНакл «з'їдається», де можна впертися у ліміт і як це…
- OdooДекларація ПДВЯк зібрати декларацію з ПДВ з journal entries Odoo: рядки 1-21, додатки Д1-Д6, експорт у формат ДПС.
- OdooПН/РКЯк Odoo працює з податковими накладними: складання, реєстрація в ЄРПН, моніторинг статусу, типи причини та РК …
- OdooCronir.cron, model_id, function_id. Які стандартні cron важливі. Як писати власні — для перевірки ЄРПН-статусу, на…
- ПДВРеєстрація ЄРПНРеєстрація ПН в ЄРПН — не формальність, а умова права покупця на ПК. Строк залежить від половини місяця, реєст…