@Delphi159

Как правильно хранить в бд себестоимость и ндс товара и хранить ли вообще?

Есть программа склада.
Interbase 2009. В бд есть таблицы Income, Outcome.

Income(приход):
Cost(себестоимость),
Vat(ндс),
IncomeDate(дата прихода),
Qty(кол-во прихода),
QtyCurr(кол-во сейчас).

Например, 01/11/2016, встал на учёт как плательщик ндс-а. Но на этот момент есть остатки от старых приходов. В старых записях, на которых есть остатки для тех товаров, которые облагаюся ндс-ом, надо изменять цифры себестоимости и ндс-а, например, если цена была 2долл. и и был распределен так:
Cost-2; Vat-0
сейчас станет
Cost-1.695; vat-0.305.
Но тогда прибыль от старых продаж (до 01/11/16) будет посчитано неправильно- вместо (продаж.цена-2) будет (продаж.цена-1,695)!
Какие изменения можно сделать в бд, а не в запросах, чтобы обойти эту проблему?
Есть несколько вариантов:
1. списывать старый остаток с 0 НДС-ом и принять то же количество с ндс-ом и другой себестоимостью?
Но тогда в таблице-"шапке" приходов появится 2 записи , а приход был всего один.
2. в бд добавить таблицу(VatVersion) с периодом времены. то есть, конечная закупочная цена(InPrice),себестоимость и ндс останется в таблице записей прихода(Income).
Income: Income_id,IncomeDate, cost, vat, Qty, InPrice...
VatVersion: id,StartDate, EndDate,VatPayable(0 or 1).
Но тогда получается что на старые остатки в Income продолжаю хранить товар старой себестоимостью и нулевым ндс-ом!!!
3. не хранить в бд себестоимость и ндс, а посчитать в программе. Для этого создать таблицу с периодами времени и флагом налогооблажения(тратит-1, не тратит-0):
Income_Ex: In_id, VatPayable(0 или 1), StartDate, EndDate
Покритикуйте эти варианты и предлагайте другое решение если такое есть.
  • Вопрос задан
  • 243 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы