Списання товарів (Goods Writeoff)¶
Фізичне та бухгалтерське видалення товарів зі складу: псування, крадіжка, прострочення, виробничі втрати.
1. Документ: GoodsWriteoff¶
Заголовок¶
- number / date
- organization →
Organization - warehouse →
Warehouse(з якого) - writeoff_reason — enum:
damaged— пошкодженоexpired— простроченоtheft— крадіжкаproduction_loss— виробничі втратиsample— на зразки / маркетингinternal_use— для власних потребother- expense_item →
ExpenseItem(стаття витрат, куди списується) - department →
Department(підрозділ-винуватець) - responsible_person →
Person(матеріально-відповідальна особа) - commission_members — склад комісії (текстом або через M2M Person)
- act_number / act_date — реквізити акту списання
- status —
draft / posted / marked
Рядки (GoodsWriteoffLine)¶
- item →
Item - quantity + unit
- batch →
Batch(яка партія) - unit_cost (собівартість — підставляється за FIFO/WAC)
- amount (розрахунково = quantity × unit_cost)
2. Бізнес-процес¶
1. Інцидент (пошкодження/крадіжка/тощо)
2. Створення акту списання (комісія):
- draft GoodsWriteoff
- вибір партій (FIFO або вручну)
- розрахунок суми за собівартістю
3. Підпис комісії + керівника
4. Post:
- Posting: Дт 947 (втрати від нестач) — Кт 281 (товари)
* для theft: Дт 375 (розрахунки з винними) — Кт 947
- InventoryJournal: -залишок
- StockTransaction: writeoff
- IncomeExpenseJournal: +витрати (за ExpenseItem)
3. Особливості обліку¶
ПДВ при списанні¶
За УПК України: якщо товар списується через псування/крадіжку, вхідний ПДВ має бути відкоригований (нараховано податкове зобов'язання).
У Posting генерується додатковий запис:
Детально — у VAT.
Списання за собівартістю¶
unit_cost береться з Batch.cost_price (якщо партіонний облік) або розраховується за WAC (середньозважена).
Винна особа¶
Якщо writeoff_reason == 'theft' і визначено винного:
- Формується Invoice до співробітника (для утримання з зарплати)
- Або окремий документ RecoveryFromEmployee (у план)
4. Сценарії¶
Списання простроченої продукції (FMCG)¶
- Масове сканування штрих-кодів на складі
- Автоматичне формування
GoodsWriteoffз партій, деexpiry_date < today - Спеціальний
ExpenseItem: "Псування — прострочка"
Виробничі втрати (норма + понад норму)¶
- Норма — списується на
24рах (виробництво, собівартість) - Понаднорма — на
947(втрати) - У виробничих сценаріях інтегрується з модулем Production & BOM
Списання на зразки / маркетинг¶
ExpenseItem: "Маркетингові витрати"- ПДВ можна не коригувати (якщо доведено господарську мету)
5. UI¶
- Список:
/essentials/transactions/goods-writeoffs - Форма: з панеллю підтаблиці рядків + BatchPickerModal
- Друк: акт списання (по шаблону fortune-sheet)
🔮 Deferred / Ideas¶
Automated expiry scanning¶
Мотивація: прострочена продукція не вивозиться вчасно Чому відкладено: потрібна cron + email-сповіщення Trigger: FMCG-клієнт
Damage photo attachments¶
Мотивація: доказ для страхової / винної особи Чому відкладено: потрібен file upload + gallery UI Trigger: клієнт зі страхуванням товарів
Insurance claim workflow¶
Мотивація: списати через страхову = отримати відшкодування Чому відкладено: потрібен окремий документ + зв'язок зі страховиком Trigger: склад з великим інвентарем
Integration with inventory audit¶
Мотивація: підрахунок при інвентаризації → автоматичне списання неузгоджень
Чому відкладено: модуль InventoryAudit ще не реалізовано
Trigger: вимога регулятора або внутрішня політика